Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Коллеги, помогите разобраться.
Есть две таблицы связанные один к одному. (Users и Messages)
В блэйд вывести значение (имя автора)
$message->user->name и получаю "Trying to get property 'name' of non-object"
Теперь самое интересное:
конструкция
$message->user
вполне правильно выводит объект
{"id":1,"name":John,"email":"jonh@aol.com","message_id":1}
если поставить
@php
dd($message->user->name)
@endphp
в тело blade - выводит имя правильно. Причем выводит и до установленного dd на странице тоже.
Кто сталкивался? В чем причина и куда копать?
Не в сети
UPD в соседнем blade все работает...
Не в сети
Если еще интересно ) то сработало с конструкцией:
{{ DB::table('users')->where('user_id','=',$user->id)->value('name') }}
Не в сети
Ну так вы посмотрите привязан ли какой либо юзер именно к этой модели мессага.
Не в сети
Да, пользователь привязан. Возможно я чего-то недопонимаю, но цикл:
@foreach($user->message() as $message)
<p>{{ $message->body }}</p>
@endforeach
не работает (не входит даже в него). При этом цикл в этом же месте:
@foreach($user->message()->pluck('body') as $message)
<p>{{ $message }}</p>
@endforeach
выводит все правильно (но нужны и другие данные по записи).
Поможете разобраться? (Спасибо)
Не в сети
Почитайте как пользоваться связями.
`->message()` - возвращает Builder, поэтому в цикл и не заходит
А `->message` вернет коллекцию.
p.s. писать запросы в blade - моветон
Не в сети
Страницы 1