Laravel получает записи из модели с определенными данными и отношениями - PullRequest
0 голосов
/ 20 апреля 2019

У меня есть модель Сообщение:

protected $with = ['user']

public function user() {
    return $this->belongsTo(User::class);
}

Когда на контроллере я устанавливаю только заголовок и изображение:

$posts = Post::get(['title', 'image']);

Пользователь отношения возвращает мне значение NULL.

@foreach($posts as $post)
   User: {{ $post->user->name }} //null
@endforeach

Почему?Если я удаляю массив из метода get, то отношение работает, если я устанавливаю массив, то пользователь отношения возвращает мне ноль.Пожалуйста помоги.

1 Ответ

0 голосов
/ 20 апреля 2019

С Post::get(['title', 'image']); вы указываете, что вам нужны только эти столбцы.

Если вы хотите использовать этот подход,

$posts = Post::with('user')->get(['title', 'image']);

Или вы можете включить пользователя не со свойством protected $with, а вместо него protected $appends, чтобы всегда добавлять его в вашу модель в качестве поля по умолчанию

// In Post Class:
protected $appends = "user";

// Then this should work
$posts = Post::get(['title', 'image', 'user']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...