我在Laravel的hasManyThrough函数中遇到了问题。
我的目标是获得一个feed,其中日志由登录用户遵循的用户显示。我试图通过以下方式实现这一目标:
我通过用户跟随的人正确地检索数据。但是,在数据中返回的user_id是登录的用户,而不是文章的作者。为什么啊?
使用者php
public function feed() {
return $this->hasManyThrough(
'App\Post',
'App\Follow',
'user_id',
'user_id',
'id',
'target_id'
)
->with('user')
->orderBy('id', 'DESC');
}
邮递php
public function user() {
return $this->belongsTo('App\User');
}
通过从控制器调用
$posts = Auth::user()->feed;
您的代码创建此查询:select`posts`.*`跟随``用户id`代码>
如您所见,posts。用户id被下面的
覆盖。用户id
(如下。用户id
对于快速加载是必需的)。
对于你的问题,我有两种可能的解决方案:
如下。用户id
李> User
→ <代码>有许多→ <代码>跟随→ <代码>有许多→ <代码>发布