Laravel-datatables: Неверное значение столбца идентификатора

Созданный на 9 дек. 2016  ·  3Комментарии  ·  Источник: yajra/laravel-datatables

Краткое изложение проблемы или запроса функции

Значения столбца id неверны, если id не запрашивается со стороны javascript.

Проблема возникает только тогда, когда я не упоминаю столбец id в параметре dataTables columns .

$('#table').DataTable({
    columns: [
            { data: 'id', name: 'id' }, // ----> Problem appear when i don't mention this column in javascript
            { data: 'user.first_name', name: 'user.first_name' },
            ...
    ]
})

На стороне PHP у меня что-то вроде этого

$students = Student::with(['user', ...]);

return Datatables::of($students)
->addColumn('actions', function ($row)
{
    $row->id // ----> Will contain wrong value, it will contain users.id instead of students.id

    return $actions;
})
->make(true);

Значение id будет users.id вместо students.id

Детали системы

  • Операционная система
  • Версия PHP: 5.6
  • Laravel версии 5.3.26
  • Laravel-Datatables 6.22.5
documentation question

Самый полезный комментарий

Я думаю, что это ошибка в фреймворке laravel, и чтобы исправить это, нужно добавить select('students.*') в ваш запрос, как описано здесь .

$students = Student::with(['user', ...])->select('students.*');

return Datatables::of($students)
->addColumn('actions', function ($row)
{
    $row->id // ----> Will contain wrong value, it will contain users.id instead of students.id

    return $actions;
})
->make(true);

Все 3 Комментарий

Я думаю, что это ошибка в фреймворке laravel, и чтобы исправить это, нужно добавить select('students.*') в ваш запрос, как описано здесь .

$students = Student::with(['user', ...])->select('students.*');

return Datatables::of($students)
->addColumn('actions', function ($row)
{
    $row->id // ----> Will contain wrong value, it will contain users.id instead of students.id

    return $actions;
})
->make(true);

Спасибо, теперь все работает нормально

@yajra , ваш ответ мне помог, спасибо. Было бы лучше, если бы вы удалили комментарий, поскольку в вашем примере все должно быть наоборот. Он будет содержать правильное значение.
Спасибо

Была ли эта страница полезной?
0 / 5 - 0 рейтинги