Laravel - Project-Flyer:为用户

时间:2015-11-20 13:50:43

标签: php laravel laravel-5

一直关注laracasts的项目传单系列,在为单个用户创建第二个传单时似乎有问题。

我可以创建传单,然后通过编写

向创建传单的用户显示信息
{{ $flyer->owner->name }}

这在我与该用户创建的第一个传单上显示正常。

但是,如果我尝试使用相同的用户创建第二个传单,我会收到此错误:

Trying to get property of non-object...

dd()在第二个传单上的$ flyer->所有者处抛出此内容:

null

但是在第一个传单上抛出了这个: array of user information

那时我的人际关系似乎存在问题?但它似乎很奇怪第一次如何正常工作,但是在单个帐户中添加第二个传单会导致此错误。

我可以创建多个帐户,每个帐户都有一个传单,它可以正常工作,但只要我将第二个传单添加到一个帐户,它就会混乱。

我不确定我是否错过了视频中的任何内容,但到目前为止,他们中没有一个人在每个帐户中创建多个传单。

我已经解决了这个问题,请参阅下面我自己的答案。

2 个答案:

答案 0 :(得分:0)

查看关系docs

的文档

我相信(不太确定)第一次使用它的原因是你使用这个静态调用创建了某种singleton

答案 1 :(得分:0)

所以,我自己解决了这个问题。

在我的传单模型中,我错误地引用了外键。我一直在寻找' id',但我应该一直在寻找' user_id'。

因此传单模型的正确代码应为:

public function owner()
{
    return $this->belongsTo('App\User', 'user_id');
}

我通过搜索github找到项目传单的克隆来发现这一点,看看我是否能看到与我的代码不同的东西。事实证明这只是一个简单的解决方案。