#php #laravel
#php #laravel
Вопрос:
У меня есть сообщение модели:
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
метода, то отношение работает, если я устанавливаю массив, то пользователь отношения возвращает мне значение null. Пожалуйста, помогите.
Ответ №1:
При Post::get(['title', 'image']);
этом вы указываете, что вам нужны только эти столбцы.
Если вы хотите использовать этот подход,
$posts = Post::with('user')->get(['title', 'image']);
Или вы можете включить user не с protected $with
помощью свойства, а вместо protected $appends
этого всегда добавлять его в свою модель в качестве поля по умолчанию
// In Post Class:
protected $appends = "user";
// Then this should work
$posts = Post::get(['title', 'image', 'user']);