Это происходит потому, что для некоторых $conversations
или может быть один из $conversation
не имеет никаких bulletin
. В результате, когда вы перебираете все $conversations
и получаете доступ к $conversion->bulletin->id
, этот conversation
вызывает ошибку. Когда вы запускаете dd
, он выбрасывает только первый conversation
и умирает. В результате вы не видите правильно, в чем проблема.
заменить следующую строку:
dd($conversation->bulletin);
с этой строкой и смотрите:
dump($conversation->id, $conversation->bulletin);
Я совершенно уверен, что вы увидите, что хотя бы в одном разговоре нет бюллетеня.
Обновление:
самостоятельно :: найти ($ conversation-> идентификатор) -> пользователей (); вернет объект отношения, а не коллекцию пользователей. Если вы хотите получить доступ к коллекции пользователя, тогда вы должны сделать self::find($conversation->id)->users
. То же самое для bulletin
и messages
На самом деле, я не думаю, что вам нужен этот getInfo()
метод. Вам просто нужно правильно использовать метод запроса with
,
Итак, замените:
Conversations::with('bulletin','messages')
эта часть Conversations::with('bulletin','messages',
пользователей )