Решено - Попытка получить свойство не-объекта - Laravel

Solved Trying Get Property Non Object Laravel



Проблема

Я пытаюсь повторить имя пользователя в своей статье и получаю ErrorException: Trying to get property of non-object . Мои коды:

Модели

1. Новости







классНовостирасширяетМодель
{
общественный функцияСообщение от()
{
возвращение $ это->принадлежит('Приложение Пользователь');
}
защищенный $ таблица знак равно 'Новости';
защищенный $ fillable знак равно ['newsContent', 'newsTitle', 'Сообщение от'];
}

2. Пользователь



классПользовательрасширяетМодельорудияАутентифицируемый контракт,
AuthorizableContract,
CanResetPasswordContract
{
использоватьПодлинный,Разрешено,CanResetPassword;

защищенный $ таблица знак равно 'пользователи';

защищенный $ fillable знак равно ['имя', 'Эл. адрес', 'пароль'];

защищенный $ скрыто знак равно ['пароль', 'Remember_token'];

}

Контроллер

общественный функцияshowArticle($ slug)
{
$ article знак равноНовости::куда('слизняк', $ slug)->firstOrFail();
возвращениеПосмотреть('статья', компактный ('статья'));
}

Лезвие

{{ $ article->Сообщение от->имя }}

Когда я пытаюсь удалить имя в лезвии {{ $article->postedBy }} он выводит id , но когда я пытаюсь добавить туда имя ->, он говорит Trying to get property of non-object но у меня есть имя поля в моей таблице и User модель. Я что-то упускаю?



Решение

Ваш запрос возвращает массив или объект? Если вы выгрузите его, вы можете обнаружить, что это массив, и все, что вам нужно, - это доступ к массиву ([]) вместо доступа к объекту (->).





Второе мнение

$ article->плакат->имя

к

$ article->плакат['имя']

Затем нужно добавить второй параметр в my ownTo из



возвращение $ это->принадлежит('Приложение Пользователь');

к

возвращение $ это->принадлежит('Приложение Пользователь', 'ID пользователя');

в котором user_id это мой внешний ключ в таблице новостей.