Ссылка: Laravel Eloquent отношения не объект при выполнении чего-либо, кроме dd ()
Я пытаюсь вывести отношение Laravel в Blade.Тем не менее, это {{ $video->channel->id }}
возвращает не объектную ошибку.Но когда dd
ed, например, {{ dd($video->channel->id) }}
, значение есть.Я так сильно дергал себя за волосы из-за этого ... Что происходит?Почему вывод выводится только тогда, когда переменная dd
ed?
Я тестирую на PHP 7.2 с Laravel 5.6.Отношения устанавливаются в соответствии с документацией Eloquent.Я попытался извлечь данные, как это:
$ videos = Video :: where ('foo', 'bar') -> with ('channel') -> take (100) -> get ();
и
$ videos = Video :: where ('foo', 'bar') -> take (100) -> get ();
То же самое;тот же вывод / ошибка.
$tokens = preg_split("/[\s,]+/", $q);
$videos = Video::with('channel')
->where(function ($query) use ($tokens) {
foreach ($tokens as $token) {
$query->orWhere('title', 'LIKE', "%$token%");
}
})
->take(100)
->get();
// foreach ($videos as $video)
{{ $video->channel->id }} // non-object error
{{ dd($video->channel->id) }} // WORKS! IDK Why...
Trying to get property 'id' of non-object
- фактический журнал ошибок.
РЕДАКТИРОВАТЬ:
Ниже приведено изображение коллекции $videos
, извлеченное из базы данных,Если в dd()
что-то выводится нормально, я могу только предположить, что я получаю данные правильно, да?