在Laravel数据表中搜索

时间:2018-12-04 13:42:05

标签: laravel datatables

在我的数据表中,搜索功能仅在名称列上起作用。名称列与其他列不同。这意味着,name列返回数据库的值,而其他列通过函数add列返回数据库的值

在列数组中有以下值:

´´´
        protected function getColumns()
   {
    return [
        'status',
        'name' => [
            'title' => 'Name',
            'orderable' => true,
            'searchable' => true
        ],
        'location' => [
            'title' => 'Standort',

        ],
        'department' => [
            'title' => 'Abteilung',
            'orderable' => true,
            'searchable' => true
        ],
        'division' => [
            'title' => 'Bereich',
            'orderable' => true,
            'searchable' => true
        ],
        'leader' => [
            'title' => 'Verantwortlicher',
            'orderable' => true,
            'searchable' => true
        ],
        'start_date' => [
            'title' => 'Startdatum',
            'searchable'=> true,
        ],
        'end_date' => [
            'title' => 'Enddatum',
            'searchable'=> true
        ]
    ];
   }
 ```

为什么不搜索所有列?我该怎么办?

1 个答案:

答案 0 :(得分:0)

尝试使用此代码进行搜索。

return Datatables::of($tasks)
->filter(function ($query) use ($request) {
    $title = $request->title;
    if (isset($title) && !empty($title)) {
        $query->where('title', 'like', '%'.$title.'%');
    }
})->make(true);

OR

return Datatables::of($tasks)
->filterColumn('title', function($query, $value) {
    $query->whereRaw("title like ?", ["%{$value}%"]);
})->make(true);