Контекст
- Таблица: пользователи
- Проблемный столбец: Last_name (может быть NULL)
- Когда Last_name = NULL → Вся строка не отображается в DataTable
- Интерфейс показывает: "1 строка отфильтрована" (даже без активного фильтра)
Код: Выделить всё
Last Name
First Name
Username
Role
let datatable = $('#datatable').DataTable({
dom: 'Blfrtip',
buttons: ['searchBuilder'],
order: [[2, 'asc']],
processing: true,
serverSide: true,
ajax: {
url: '{{ route('settings.users.fetch') }}',
type: 'POST',
dataSrc: function (json) {
if (json.error) toastr.error('An error occurred');
return json.data;
}
},
columns: [
{ data: 'last_name' },
{ data: 'first_name' },
{ data: 'username' },
{ data: 'role' }
]
});
Код: Выделить всё
public function fetch(Request $request)
{
$pdo = DB::connection()->getPdo();
$db = new Database(["type" => "Sqlite", "pdo" => $pdo]);
$editor = Editor::inst($db, 'users', 'id')->fields(
Field::inst('last_name'),
Field::inst('first_name'),
Field::inst('username'),
Field::inst('role')
);
return new JsonResponse($editor->process($request->all())->data());
}
- setFormatter(fn($v) => $v ?? '—') → строка все равно исчезает
- defaultContent: '-' в столбцах → нет эффекта
Заранее благодарим за помощь!
Подробнее здесь: https://stackoverflow.com/questions/798 ... -side-mode
Мобильная версия