我想建立关系bt条件......
我试试这样:
型号:
public function page_link()
{
return $this->belongsTo(Link::class, 'page_id', 'user_id')->inRandomOrder()->Select('links.id', 'links.title', 'links.photo', 'links.country', 'links.friendly_url', 'links.clicks', 'links.description', 'links.suggestions', 'links.count_comments', 'links.url', 'links.shares', 'links.page_id', 'links.tag_id', 'links.created_at')->where('sponsored', 0)->where('scheduled', 0)>where('status', 1)->take(3)->orderBy('id','desc');
}
public function user_share()
{
return $this->belongsTo(Share::class, 'user_id', 'user_id')->inRandomOrder()->Select('id', 'link_id', 'user_id', 'shared_in', 'content', 'created_at')->take(3)->orderBy('id', 'desc')->where('type', '=', 0);
}
public function user(){
return $this->belongsTo(User::class, 'user_id', 'id');
}
public function scopeProfile($query)
{
return $query
->when($this->type == 0, function($q)
{
return $q->with('user_share.link.page')->with('user')->with('user_share.link.tag');
})
->when($this->type == 1, function($q)
{
return $q->with('page_link');
})
->when($this->type == 2, function($q)
{
return $q->with('group_link');
});
}
控制器:
$feed = Feed::Profile()->where('follower_id', auth()->user()->id)
->take(10)
->get();
但是所有结果,甚至类型1或2都返回“user_links”关系。我不知道发生了什么。
有人可以帮帮我吗?