Laravel 5.4 Eloquent выберите с - PullRequest
0 голосов
/ 10 марта 2019

Прежде чем я опишу здесь проблему в течение длительного времени, коротко и приятно: Laravel 5.4

В теории должны быть возвращены файлы с соответствующим именем и идентификатором пользователя.

return Files::with(['user' => function($query) {
    $query->select('id', 'name');
  }])->select('filename', 'uid')->paginate();

Однако в запросе отсутствует идентификатор.

select `filename`, `uid` from `files` limit 15 offset 0
select `id`, `name` from `users` where `users`.`id` in ('')

Доступны отношения в моделях

//User.php
public function files()
{
  return $this->hasMany('App\Files');
}
//Files.php
public function user()
{
  return $this->hasOne('App\User', 'id', 'user_id');
}

Кто-нибудь знает, почему?В конце концов, невозможно передать идентификатор в качестве параметра.

1 Ответ

1 голос
/ 10 марта 2019

Стремительная загрузка может работать только тогда, когда родительский запрос выбирает столбец внешнего ключа:

return Files::with(['user' => function($query) {
    $query->select('id', 'name');
}])->select('filename', 'uid', 'user_id')->paginate();
                                ^^^^^^^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...