laravel datatable с пунктом, не работающим на псевдониме столбца

Я пытаюсь построить запрос для таблицы данных laravel, но с оговоркой не работает на двух столбцах, как я пытался ниже.

 $row = DB::table('composite_inventories as u')->select([
'u.id',
'u.purchase_item_name',
'u.sales_item_name',
DB::raw('GROUP_CONCAT(p.itemcode) as purchase_items'),
DB::raw('GROUP_CONCAT(s.itemcode) as sales_items')
])->leftJoin('composite_has_inventories as us', 'u.id', '=', 'us.composite_inventory_id')
->leftJoin('inventories as s', function($join)
{
$join->on('US.inventory_id', '=', 's.id');
$join->on('us.type','=',DB::raw("'sale'"));
})
->leftJoin('inventories as p', function($join)
{
$join->on('US.inventory_id', '=', 'p.id');
$join->on('us.type','=',DB::raw("'purchase'"));
})
->groupBy('u.id', 'u.purchase_item_name','u.sales_item_name');

$datatable = app('datatables')->of($row);

if($keyword=$request->get('search')['value'])
{
$datatable->filterColumn('purchase_items',function($row,$keyword){

$row->having('purchase_items','LIKE','%$keyword%')

});

$datatable->filterColumn('sales_items',function($row,$keyword){

$row->having('sales_items','LIKE','%$keyword%')

});

}

return $datatable->make(true);

Пожалуйста, посмотрите запрос выше. У меня есть два псевдонима purchase_items и sales_items. Когда я вписываю что-то в фильтр поиска данных, он не может предоставить мне соответствующие записи. Он должен проверить значение в элементе purchase_items или sales_items. если я поставлю условие в главном запросе, то это сработает.

см. ниже изображение вывода запроса перед применением фильтра

введите описание изображения здесь

если я ищу «A123» в датируемом поисковом фильтре, вывод должен быть таким, как показано ниже, но мой столбец фильтра не работает так

введите описание изображения здесь

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]