Итак, в этом приложении Drawing
belongsTo
Customer
. У меня есть DataTablelaravel datatable relationship
<table id='drawing-table' class="table table-bordered table-hover">
<thead>
<tr>
<th>Drawing number</th>
<th>Customer</th>
</tr>
</thead>
</table>
который указывает $darwing->number
и $customer->title
. Для загрузки информации I use yajra\Datatables\Datatables;
.
Данные загружаются с этим JS метод:
$(function() {
$('#drawing-table').DataTable({
processing: true,
serverSide: true,
ajax: '{{route('drawings.datatable')}}',
columns: [
{ data: 'number', name: 'number' },
{ data: 'customer.title', name: 'customer' },
]
});
});
И этот метод Laravel:
public function datatable()
{
$drawings = Drawing::select(array('drawings.id','drawings.number'));
return Datatables::of(Drawing::with('customer')->select('*'))->make(true);
}
ВОПРОСЫ
- Как сделать DataTable поисковое окно для работы с
$customer->title
? - Как отобразить номер чертежа и название клиента в качестве ссылки?
Он не будет искать клиента по имени, поскольку таблица чертежа имеет столбец customer_id, но заголовок клиента находится в таблице клиентов –
Хорошо, я обновил сообщение. Если у вас есть реляционная модель с клиентской базой данных, где вы можете найти имя клиента, это будет работать. Просто обновите значения, как я уже догадался; Например, имя «customer_name». Пакет Larvel datatables имеет метод фильтрации, чтобы добавить ваши собственные фильтры. – IllegalPigeon
Так что нет возможности использовать регулярное поле поиска, так как это приведет к тому, что 'Column not found: 1054 Unknown column 'customer' в 'where clause''? –