Глобальный поиск в HasOne Relation Datatable
Краткое изложение проблемы
Моя пользовательская модель имеет одно отношение с таблицей профиля. Теперь, когда я пытаюсь найти что-либо, поиск по времени не работает, только обработка показывается навсегда. Но если я удаляю реляционный столбец (profile.gender'), тогда поиск работает.
Фрагмент кода проблемы
$('#users-table').DataTable({
processing: true,
serverSide: true,
ajax: '{{route('route)}}',
'aaSorting' : [[0,'asc']],
columns: [
{data: 'id',name: 'users.id'},
{data: 'name',name: 'users.name'},
{data: 'mobile_number',name: 'users.mobile_number'},
{data: 'profile.gender',name: 'profile.gender'},
{data: 'is_active',name: 'users.is_active',searchable: false},
{data: 'is_allowed',name: 'users.is_allowed',searchable: false},
{data: 'action',searchable: false}
]
});
$users = User::with('profile');
return DataTables::eloquent($users)
->addColumn('action', function ($user) {
return '<a href="#edit-'.$user->id.'" class="btn btn-xs btn-primary"><i class="glyphicon glyphicon-edit"></i> Edit</a>';
})
->editColumn('is_active', function($status){
switch($status->is_active)
{
//0= Inactive, 1 = Active
case '0': return '<span class="label label-danger">Inactive</span>'; break;
case '1': return '<span class="label label-success">Active'; break;
default: return '<span class="label label-warning">Undefine</span>';
}
})
->editColumn('is_allowed', function($status){
switch($status->is_allowed)
{
//0= Inactive, 1 = Active
case '0': return '<span class="label label-danger">Not Allowed</span>'; break;
case '1': return '<span class="label label-success">Allowed</span>'; break;
default: return '<span class="label label-warning">Undefine</span>';
}
})
->rawColumns(['is_active', 'action','is_allowed'])
->blacklist(['created_at', 'updated_at','deleted_at','action','is_allowed','is_active'])
->toJson();
Сведения о системе
- yajra/ Laravel-DataTables
- Версия PHP 7.3
- Laravel Версия 5.7
- Laravel-Datatables версия 8.x