首先,定义User
模型上的关系。在这种情况下,最好的选择是使用具有多个直通关系的:
public function articles()
{
return $this->hasManyThrough(
'App\Article',
'App\Feed',
'user_id', // Foreign key on feeds table...
'feed_id', // Foreign key on articles table...
'id', // Local key on users table...
'id' // Local key on feeds table...
);
}
然后创建一个用户对象并获取他的文章:
$user = /App/User::with('articles')->find($id);
foreach($user->articles as $article) {
// do whatever you need
}
laravel文档始终是研究的良好开端,请阅读hasManyThroughhttps://laravel.com/docs/5.5/eloquent-relationships#has-许多通过
不介意是不是在5.5他们之间没有显著差异
模型中
在rticles.php
public function Feed()
{
return $this->belongsTo('App\Feed');
}
在Feed.php
public function User()
{
return $this->belongsTo('App\User');
}
public function Articles()
{
return $this->hasMany('App\Articles');
}
在User.php
public function Feed()
{
return $this->hasMany('App\Feed');
}
内部控制器
//获取用户id=$id的所有文章
$reports2 = Articles::with(array('Feed'=>function($query)use($id){
$query->with('User');
$query->where('user_id',$id);
}))->orderBy('id', 'desc')
->get();