Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery filterColumn在yajra/laravel数据表中不起作用_Jquery_Laravel_Datatables - Fatal编程技术网

Jquery filterColumn在yajra/laravel数据表中不起作用

Jquery filterColumn在yajra/laravel数据表中不起作用,jquery,laravel,datatables,Jquery,Laravel,Datatables,显示我使用的用户列表 除了Datatable自己的搜索框来过滤结果外,我还有一个组合框来根据用户的级别过滤用户 这是我的组合框: <div class="form-group" id="levelFilterWrapper"> <label for="levelFilter">Userlevel :</label> <selec

显示我使用的用户列表

除了Datatable自己的搜索框来过滤结果外,我还有一个组合框来根据用户的级别过滤用户

这是我的组合框:

<div class="form-group" id="levelFilterWrapper">
                                <label for="levelFilter">Userlevel :</label>
                                <select id="levelFilter" name="levelFilter" class="form-control">
                                    <option value="all">All</option>
                                    <option value="admin">admin</option>
                                    <option value="user">user</option>
                                    <option value="centerManager">centerAdmin</option>
                                </select>
                            </div>
这是我的yajra Datatables laravel代码:

$users = User::select(['user_id', 'name', 'family', 'email', 'created_at', 'level']);

        $datatable = app('datatables')->of($users)
            ->filter(function ($query) use ($request) {
                if (!empty($request->get('level')) and $request->get('level') != 'all') {
                    return $query->whereLevel($request->get('level'));
                } else {
                    return $query;
                }
            })
            ->orderBy('created_at', 'desc')
            ->addColumn('checkbox', '<input type="checkbox" name="item_id[]" value="{{$user_id}}" id="Check_{{$user_id}}" class="minimal">')
            ->addColumn('userPic', function ($user) {
                return '<img src="http://www.gravatar.com/avatar/' . md5($user->email) . '?d=mm&s=30" class="img-thumbnail img-responsive">';
            })
            ->editColumn('email', function ($user) {
                return '
                        ' . $user->name . ' ' . $user->family . '
                        <div class="en-text"><a href="mailto:' . $user->email . '" target="_blank">' . $user->email . '</a></div>
                    ';
            })

            ->editColumn('created_at', function ($user) {
                return JDF::jdate('l j F Y - G:i', $user->created_at);
            })
            ->addColumn('actions', function ($user) {
                return '
                        <a href="/admin/user/' . $user->user_id . '/edit" class="btn btn-primary btn-sm btn-flat fa fa-pencil-square-o" data-toggle="tooltip" data-placement="top" title="Edit And View"></a>
                        <a href="#" class="btn btn-danger btn-sm btn-flat fa fa-trash-o delItem" data-toggle="tooltip" data-placement="top" title="Delete" data-item-id="' . $user->user_id . '"></a>
                    ';
            });

        if ($keyword = $request->get('search')['value']) {
            $datatable->filterColumn('name', 'where', '=', "%$keyword%");
        }

        return $datatable->make(true);
$users=User::select(['User\u id','name','family','email','created\u at','level']);
$datatable=app('datatables')->of($users)
->过滤器(函数($query)使用($request){
如果(!empty($request->get('level'))和$request->get('level')!='all'){
返回$query->whereLevel($request->get('level');
}否则{
返回$query;
}
})
->orderBy('created_at','desc')
->addColumn('复选框','')
->addColumn('userPic',函数($user){
返回“电子邮件”。“?d=mm&s=30”class=“img缩略图img响应”>”;
})
->editColumn('email',函数($user){
返回'
“.$user->name.”.$user->family
';
})
->editColumn('created_at',函数($user){
返回JDF::jdate('ljfy-G:i',$user->created_at);
})
->addColumn('actions',函数($user){
返回'
';
});
如果($keyword=$request->get('search')['value']){
$datatable->filterColumn('name'、'where'、'='、“%$keyword%”);
}
返回$datatable->make(真);

通过
levelFilter
combobox进行过滤可以正常工作,但我希望当管理员选择一个用户级表单时,通过DataTable搜索框进行过滤,在所选级别进行搜索。但是在搜索框中键入一些字符后,再次显示combobox过滤的完全相同结果,并且在这种情况下,搜索框过滤似乎不起作用

根据yajra的回答,在yajra/laravel数据表Github页面:

使用->过滤器()将禁用全局搜索,这将导致在 文本框不起作用。如果要使用筛选器,则需要 为每个字段编写每个查询

另一方面,您可以在查询时提取级别过滤器 级别,使其工作如下:

$users=User::select(['User\u id','name','family','email','created\u at','level']);
如果(!empty($request->get('level'))和$request->get('level')!='all'){
$users=$users->whereLevel($request->get('level');
}
$datatable=app('datatables')->of($users)
->orderBy('created_at','desc')
->addColumn('复选框','')
->addColumn('userPic',函数($user){
返回“电子邮件”。“?d=mm&s=30”class=“img缩略图img响应”>”;
})
->editColumn('email',函数($user){
返回'
“.$user->name.”.$user->family
';
})
->editColumn('created_at',函数($user){
返回JDF::jdate('ljfy-G:i',$user->created_at);
})
->addColumn('actions',函数($user){
返回'
';
});
返回$datatable->make(真);

根据yajra回答yajra/laravel数据表Github页面:

使用->过滤器()将禁用全局搜索,这将导致在 文本框不工作。如果要使用过滤器,则需要 为每个字段编写每个查询

另一方面,您可以在查询时提取级别过滤器 级别,使其工作如下:

$users=User::select(['User\u id','name','family','email','created\u at','level']);
如果(!empty($request->get('level'))和$request->get('level')!='all'){
$users=$users->whereLevel($request->get('level');
}
$datatable=app('datatables')->of($users)
->orderBy('created_at','desc')
->addColumn('复选框','')
->addColumn('userPic',函数($user){
返回“电子邮件”。“?d=mm&s=30”class=“img缩略图img响应”>”;
})
->editColumn('email',函数($user){
返回'
“.$user->name.”.$user->family
';
})
->editColumn('created_at',函数($user){
返回JDF::jdate('ljfy-G:i',$user->created_at);
})
->addColumn('actions',函数($user){
返回'
';
});
返回$datatable->make(真);

如果级别已加密,那么如何在laravel@A.B.Developer中使用此筛选器?我使用了trait Encryptable with Crypt来加密和解密如果级别已加密,那么如何在laravel@A.B.Developer中使用此筛选器?我使用trait Encryptable with Crypt来加密和解密
$users = User::select(['user_id', 'name', 'family', 'email', 'created_at', 'level']);

        $datatable = app('datatables')->of($users)
            ->filter(function ($query) use ($request) {
                if (!empty($request->get('level')) and $request->get('level') != 'all') {
                    return $query->whereLevel($request->get('level'));
                } else {
                    return $query;
                }
            })
            ->orderBy('created_at', 'desc')
            ->addColumn('checkbox', '<input type="checkbox" name="item_id[]" value="{{$user_id}}" id="Check_{{$user_id}}" class="minimal">')
            ->addColumn('userPic', function ($user) {
                return '<img src="http://www.gravatar.com/avatar/' . md5($user->email) . '?d=mm&s=30" class="img-thumbnail img-responsive">';
            })
            ->editColumn('email', function ($user) {
                return '
                        ' . $user->name . ' ' . $user->family . '
                        <div class="en-text"><a href="mailto:' . $user->email . '" target="_blank">' . $user->email . '</a></div>
                    ';
            })

            ->editColumn('created_at', function ($user) {
                return JDF::jdate('l j F Y - G:i', $user->created_at);
            })
            ->addColumn('actions', function ($user) {
                return '
                        <a href="/admin/user/' . $user->user_id . '/edit" class="btn btn-primary btn-sm btn-flat fa fa-pencil-square-o" data-toggle="tooltip" data-placement="top" title="Edit And View"></a>
                        <a href="#" class="btn btn-danger btn-sm btn-flat fa fa-trash-o delItem" data-toggle="tooltip" data-placement="top" title="Delete" data-item-id="' . $user->user_id . '"></a>
                    ';
            });

        if ($keyword = $request->get('search')['value']) {
            $datatable->filterColumn('name', 'where', '=', "%$keyword%");
        }

        return $datatable->make(true);
    $users = User::select(['user_id', 'name', 'family', 'email', 'created_at', 'level']);
if (!empty($request->get('level')) and $request->get('level') != 'all') {
    $users = $users->whereLevel($request->get('level'));
}

    $datatable = app('datatables')->of($users)
        ->orderBy('created_at', 'desc')
        ->addColumn('checkbox', '<input type="checkbox" name="item_id[]" value="{{$user_id}}" id="Check_{{$user_id}}" class="minimal">')
        ->addColumn('userPic', function ($user) {
            return '<img src="http://www.gravatar.com/avatar/' . md5($user->email) . '?d=mm&s=30" class="img-thumbnail img-responsive">';
        })
        ->editColumn('email', function ($user) {
            return '
                    ' . $user->name . ' ' . $user->family . '
                    <div class="en-text"><a href="mailto:' . $user->email . '" target="_blank">' . $user->email . '</a></div>
                ';
        })

        ->editColumn('created_at', function ($user) {
            return JDF::jdate('l j F Y - G:i', $user->created_at);
        })
        ->addColumn('actions', function ($user) {
            return '
                    <a href="/admin/user/' . $user->user_id . '/edit" class="btn btn-primary btn-sm btn-flat fa fa-pencil-square-o" data-toggle="tooltip" data-placement="top" title="Edit And View"></a>
                    <a href="#" class="btn btn-danger btn-sm btn-flat fa fa-trash-o delItem" data-toggle="tooltip" data-placement="top" title="Delete" data-item-id="' . $user->user_id . '"></a>
                ';
        });

    return $datatable->make(true);