Почему select не работает в eloquent в Laravel 5.7? - PullRequest
0 голосов
/ 27 ноября 2018

Следующий код работает нормально:

Post::with(['user'])
    ->get();

, но когда я пытаюсь отфильтровать его, используя select, он возвращает нуль в отношениях пользователя.

Post::with(['user' => function($query){
    $query->select('name');
}])
->select('id', 'slug', 'title', 'body', 'created_at')
->get();

отношение внутри модели пользователя:

public function posts()
{
    return $this->hasMany('App\Post');
}

Отношение внутри Почта Модель:

public function user()
{
   return $this->belongsTo('App\User', 'user_id');
}

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Можете ли вы сделать с

DB::table('users')->where('votes', '>', 100)->sharedLock()->get();
0 голосов
/ 27 ноября 2018

Вы должны выбрать внешний ключ (posts.user_id) и ключ владельца (users.id):

Post::with(['user' => function($query){
    $query->select('id', 'name');
}])
->select('id', 'slug', 'title', 'body', 'created_at', 'user_id')
->get();

Вы также можете использовать эту более короткую версию:

Post::with('user:id,name')
    ->select('id', 'slug', 'title', 'body', 'created_at', 'user_id')
    ->get();
...