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

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

модели

 1. News class News extends Model { public function postedBy() { return $this->belongsTo('App\User'); } protected $table = 'news'; protected $fillable = ['newsContent', 'newsTitle', 'postedBy']; } 2. User class User extends Model implements AuthenticatableContract, AuthorizableContract, CanResetPasswordContract { use Authenticatable, Authorizable, CanResetPassword; protected $table = 'users'; protected $fillable = ['name', 'email', 'password']; protected $hidden = ['password', 'remember_token']; } 

схема

users таблицы

введите описание изображения здесь

news таблицы

введите описание изображения здесь

контроллер

 public function showArticle($slug) { $article = News::where('slug', $slug)->firstOrFail(); return view('article', compact('article')); } 

лопасть

 {{ $article->postedBy->name }} 

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

Related of "Попытка получить свойство не объекта – Laravel 5"

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

Я заработал, используя ответ Джимми Зото и добавив второй параметр к моему belongsTo . Вот:

Во-первых, как предложил Джимми Зото, мой код в $article->poster->name от $article->poster->name до $article->poster['name'] . Далее следует добавить второй параметр в my belongsTo , from return $this->belongsTo('App\User'); вернуть $this->belongsTo('App\User', 'user_id'); в котором user_id является моим внешним ключом в таблице новостей.

Спасибо за вашу помощь!