2015-05-15 76 views
0

比方說,我有三個表:包括另一組的結果到許多一對多的關係

  1. 文章:ID,...
  2. 廣告:ID,display_on_every_subsite,...
  3. Article_Advert:advert_id,article_id

我有一個簡單的Eloquent關係:文章和廣告之間的belongsToMany - Article_Advert是數據透視表。

的問題是,我需要獲取指定文章(S)的所有廣告和與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爲空,佞不重視牽強行任何相關的模型。

回答

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()); 
+0

謝謝你,但是這適用於單隻的文章,而不是預先加載。 – Luki