【发布时间】:2015-12-04 19:57:52
【问题描述】:
我试图在我的文章中呼应用户的名字,我得到了
ErrorException: 试图获取非对象的属性
我的代码:
模型
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 but I have a field namein my table and aUser` 模型。我错过了什么吗?
【问题讨论】:
-
你能
print_r($article);吗? -
@aldrin27 print_r 直接在我的控制器中?好吧,实际上一切正常,我得到了每个领域,但我无法得到关系。它给了我错误
-
你需要在你的刀片内部 foreach 。
-
@aldrin27 即使我使用 foreach 我仍然遇到同样的错误
-
你有数据透视表吗?