Я использую DataTable 1.10.21 с Laravel 7. Я пытаюсь заполнить все данные пользователей, за исключением того, что в моей таблице пользователей есть дополнительный столбец с именем group_id, который определяет группу пользователей (ie. администратор, менеджер, пользователь и т.д. c)
Сейчас моя модель пользователя имеет следующие отношения:
public function group() {
return $this->belongsTo(Group::class);
}
Когда я звоню
App\User::select(*)->with('group')->get();
, я получаю что-то вроде этого, что хорошо:
App\User {#105150
id: 1,
group_id: 1,
name: "Admin",
email: "admin@admin.com",
email_verified_at: "2020-01-01 01:01:01",
...
deleted_at: null,
group: App\Group {#105096
id: 1,
name: "admin",
},
}
...
В моем UserController у меня есть эта функция:
public function datatable() {
$data = User::select("*")->with('group');
$dt = Datatables::of($data)->make(true);
\Log::debug($dt); //this works!!
return $dt;
}
Я могу использовать tinker, чтобы получить $ data и $ dt без каких-либо проблем.
В моем представлении содержится следующее javascript:
$(function() {
$('#table').DataTable({
processing: true,
serverSide: true,
ajax: '{{ url('user/datatable') }}',
columns: [
{ data: 'id', name: 'id' },
{ data: 'name', name: 'name' },
{ data: 'group_id', name: 'group_id' }, /* this won't work */
{ data: 'group.name', name: 'group.name' }, /* this won't work either */
{ data: 'created_at', name: 'created_at' },
{ data: 'email', name: 'email' }
]
});
});
<table class="table table-bordered" id="table">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Group ID</th>
<th>Group Name</th>
<th>Creation Date</th>
<th>Email</th>
</tr>
</thead>
</table>
Ни group_id, ни group.name col не будут работать. (net :: ERR_EMPTY_RESPONSE ошибка, даже если $ dt имеет ответ), но если я удалю оба столбца, он будет работать нормально.
Пожалуйста, сообщите.
Изменить: 29 мая 2020
Я покопался немного глубже и вот что я нашел:
Если я использую свой локальный тестовый домен (ie. Myproject.test)
- Если я удалю некоторые другие столбцы (ie. Created at, email), он сработает
- Если я включу все столбцы (ie. Id, name, group_id, group.name, created_at, email), я получил ошибка ERR_EMPTY_RESPONSE
Если я использую 127.0.0.1:8000
- , это сработало, даже если я включил все столбцы !!!!
Может кто-нибудь объяснить мне, почему ??