一直关注laracasts的项目传单系列,在为单个用户创建第二个传单时似乎有问题。
我可以创建传单,然后通过编写
向创建传单的用户显示信息{{ $flyer->owner->name }}
这在我与该用户创建的第一个传单上显示正常。
但是,如果我尝试使用相同的用户创建第二个传单,我会收到此错误:
Trying to get property of non-object...
dd()在第二个传单上的$ flyer->所有者处抛出此内容:
null
但是在第一个传单上抛出了这个: array of user information
那时我的人际关系似乎存在问题?但它似乎很奇怪第一次如何正常工作,但是在单个帐户中添加第二个传单会导致此错误。
我可以创建多个帐户,每个帐户都有一个传单,它可以正常工作,但只要我将第二个传单添加到一个帐户,它就会混乱。
我不确定我是否错过了视频中的任何内容,但到目前为止,他们中没有一个人在每个帐户中创建多个传单。
答案 0 :(得分:0)
答案 1 :(得分:0)
所以,我自己解决了这个问题。
在我的传单模型中,我错误地引用了外键。我一直在寻找' id',但我应该一直在寻找' user_id'。
因此传单模型的正确代码应为:
public function owner()
{
return $this->belongsTo('App\User', 'user_id');
}
我通过搜索github找到项目传单的克隆来发现这一点,看看我是否能看到与我的代码不同的东西。事实证明这只是一个简单的解决方案。