Проблема
Я пытаюсь повторить имя пользователя в своей статье и получаю 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
это мой внешний ключ в таблице новостей.