Я использую laravel / datatables для отображения данных.
Я манипулировал своим списком данных с помощью функции addColumn. Однако я не могу использовать поиск в представлении для добавленных столбцов. Потому что поиск работает по строкам базы данных. Datatables работает нормально, но в области поиска просмотра не работает. Потому что в таблице базы данных нет ни одной строки fullname .
Здесь вы можете найти мои коды (я хочу найти полное имя, но не могу)
Модель заказа
public function getFullname()
{
return json_decode($this->getAttribute('delivery_adress'))->fullname;
}
OrderController. php
if ($request->ajax()) {
return datatables()->of(Order::query())
->addColumn('fullname', function (Order $order) {
return $order->getFullname();
})->addColumn('city', function (Order $order) {
return $order->getCity();
})->addColumn('product_id', function (Order $order) {
return $order->product->title;
})->make(true);
}
Заказы Blade / Datatables код
"pageLength": 10,
processing: true,
serverSide: true,
ajax: 'orders',
columns: [
{ data: 'id', name: 'id'},
{ data: 'fullname', name: 'fullname', defaultContent: '-' , orderable: false },
{ data: 'city', name: 'city', defaultContent: '-', orderable: false },
{ data: 'product_id', name: 'product_id', className: 'd-none d-sm-table-cell', defaultContent: '-' },
{ data: 'totalPrice', name: 'totalPrice', className: 'd-none d-sm-table-cell', defaultContent: '-' },
],