我们说我有三张桌子:
我有一个简单的雄辩的关系:在物品和广告之间属于所有人 - Article_Advert是数据透视表。
问题是我需要获取指定文章和所有广告的所有广告,其中display_on_every_subsite = 1。
我试图通过工会实现这一目标,这就是我现在所做的事情:
$this->belongsToMany('Advert', 'Article_Advert', 'article_id', 'advert_id')->union(Advert::allSubpages()->selectRaw('`advert`.*, `advert`.`id` as `pivot_advert_id`, null as `pivot_article_id`')->getQuery());
问题是当pivot_article_id为null时,Eloquent不会将获取的行附加到任何相关模型。
答案 0 :(得分:1)
它几乎就是这样,只需更改以下内容:
// I assume you have this inside Article Model
$articleId = $this->id;
$this->belongsToMany('Advert', 'Article_Advert', 'article_id', 'advert_id')
->union(Advert::allSubpages()
->selectRaw("`advert`.*, `advert`.`id` as `pivot_advert_id`, '$articleId' as `pivot_article_id`")
->where('display_on_every_subsite','=','1')
->getQuery());