雄辩的关系,有很多属于的东西

时间:2013-11-19 19:08:16

标签: php laravel laravel-4

User模型中,我使用belongsTo找出User所属的用户:

public function following()
{
        return $this->belongsToMany('User', 'connections', 'user', 'follows');
}

虽然没关系,但我还希望从表Feed中获取项目owner设置为follows connectionsUser中的值,因此我尝试添加这个函数适用于public function feed() { return $this->hasMany('Feed', 'owner')->orderBy('created_at', 'desc'); } 模型:

User::find(Auth::user()->id)->following->feed;

然后用:

调用所有内容
hasMany

这会引发错误,我想我无法在belongsTo之后拨打{{1}}?

2 个答案:

答案 0 :(得分:0)

User::find(Auth::user()->id)相当于Auth::user()。只需使用后者。


由于followingbelongsToMany关系,因此会返回多条记录。所以Auth::user()->following返回一个集合,而不是模型。您只能直接在模型上调用feed方法。


如果您使用的是Laravel 4.1(仍处于测试阶段),则可能会在此处使用新的hasManyThrough类型关系。

答案 1 :(得分:0)

你试过通过延迟加载吗?

User::with("following.feed")->first();

我不知道它是否有效但可能会有效。