Выберите конкретный столбец в laravel eloquent с методом - PullRequest
0 голосов
/ 06 июня 2018

Я использую laravel 5.6 и хочу получить пользователя posts с comments (только id поле)

Модель пользователя

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

Модель сообщения

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

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

Модель комментария

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

В моем контроллере я использую этот код для получения сообщений пользователя со своимикомментарии

$posts = $request->user()->posts()->with(['comments' => function($query) {
    $query->select(['id']);
}]); 

Но это не работает ...

Когда я комментирую $query->select(['id']);, он работает нормально, но возвращает Comment моделирует все поля.Я хочу выбрать только поле id.

Что мне здесь не хватает?

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Вы также должны выбрать столбец внешнего ключа (необходим для сопоставления результатов):

$posts = $request->user()->posts()->with('comments:id,post_id'); 
0 голосов
/ 07 июня 2018

Если вы хотите использовать только один столбец, вы можете использовать ->pluck('id')

https://laravel.com/docs/5.6/collections#method-pluck

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...