如何在laravel和ajax中使用select 2进行搜索?

如何在laravel和ajax中使用select 2进行搜索?,ajax,laravel,Ajax,Laravel,我正在尝试将从DB中提取的选定值加载到Select2中。Id值保存在JSON字段中,该字段包含Id值或我管理为“All”的字段“*” 我想在用户表中搜索名字和姓氏 AJAX <script> $(document).ready(function() { $('#plaintiffId').select2({ ajax: { url: '{{ route('admin::reports.plaintiffI

我正在尝试将从DB中提取的选定值加载到Select2中。Id值保存在JSON字段中,该字段包含Id值或我管理为“All”的字段“*”

我想在用户表中搜索
名字
姓氏

AJAX

<script>
    $(document).ready(function() {
        $('#plaintiffId').select2({
            ajax: {
                url: '{{ route('admin::reports.plaintiffId') }}',
                dataType: 'json',
                delay: 250,
                processResults: function (data) {
                    return {
                        results:  $.map(data, function (item) {
                            return {
                                first_name: item.user.first_name,
                                last_name: item.user.last_name,
                            }
                        })
                    };
                },
                cache: true
            }
        });
</script>
控制器

public function plaintiffId(Request $request, $term)
{
    $data = [];
    if($request->has('q')){
        $search = $request->q;
        $data = $search->when($term, function ($query) use ($term){
            return $query->whereHas('plaintiff', function ($query) use ($term) {
                $query->where('first_name', 'like', "%{$term}%");
                $query->orWhere('last_name', 'like', "%{$term}%");
            });
        });
    }
    return response()->json($data);
}
型号

public function scopeSearch($query, $term)
{
    return $query->when($term, function ($query) use ($term){
        return $query->whereHas('plaintiff', function ($query) use ($term) {
            $query->where('first_name', 'like', "%{$term}%");
            $query->orWhere('last_name', 'like', "%{$term}%");
        });
    });
}

public function plaintiff()
{
    return $this->belongsTo(User::class, 'plaintiffId');
}
我在网络中遇到这个错误


您的控制器中有$term参数,但您没有向控制器发送任何参数,您应该通过ajax向控制器发送term参数

您可以将完整的代码发送到此帖子吗?当我双击网络选项卡中的500时。当字符串上有()时,我看到了调用成员函数的错误
public function scopeSearch($query, $term)
{
    return $query->when($term, function ($query) use ($term){
        return $query->whereHas('plaintiff', function ($query) use ($term) {
            $query->where('first_name', 'like', "%{$term}%");
            $query->orWhere('last_name', 'like', "%{$term}%");
        });
    });
}

public function plaintiff()
{
    return $this->belongsTo(User::class, 'plaintiffId');
}