我正在尝试在文章中回显用户名,我正在获取ErrorException Trying to get property of non-object
。这是我的代码:
模型(我也有用户模型):
1. News
class News extends Model
{
public function postedBy()
{
return $this->belongsTo('User');
}
protected $table = 'tcity_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'];
}
控制器:
public function showArticle($slug)
{
$article = News::where('slug', $slug)->firstOrFail();
return view('article', compact('article'));
}
刀片:
{{ $article->postedBy->name }}
当我尝试删除刀片{{ $article->postedBy }}
中的名称时,它会回显ID,但当我尝试添加->name
时,它会显示Trying to get property of non-object
,但我有一个字段{{ 1}}在我的表和name
模型中。我错过了什么吗?
更新当我尝试用户dschu所说的User
时,我会得到用户的ID。
答案 0 :(得分:1)
问题是您的关系和数据库中的字段似乎有相同的名称(postedBy)。
你应该有一个名为user_id的字段而不是postedBy(或userId是一致的)。