在User
模型中,我使用belongsTo
找出User
所属的用户:
public function following()
{
return $this->belongsToMany('User', 'connections', 'user', 'follows');
}
虽然没关系,但我还希望从表Feed
中获取项目owner
设置为follows
connections
列User
中的值,因此我尝试添加这个函数适用于public function feed()
{
return $this->hasMany('Feed', 'owner')->orderBy('created_at', 'desc');
}
模型:
User::find(Auth::user()->id)->following->feed;
然后用:
调用所有内容hasMany
这会引发错误,我想我无法在belongsTo
之后拨打{{1}}?
答案 0 :(得分:0)
User::find(Auth::user()->id)
相当于Auth::user()
。只需使用后者。
由于following
是belongsToMany
关系,因此会返回多条记录。所以Auth::user()->following
返回一个集合,而不是模型。您只能直接在模型上调用feed
方法。
如果您使用的是Laravel 4.1(仍处于测试阶段),则可能会在此处使用新的hasManyThrough
类型关系。
答案 1 :(得分:0)
你试过通过延迟加载吗?
User::with("following.feed")->first();
我不知道它是否有效但可能会有效。