1
Laravel雄辯嵌套關係支點我目前正在與laravel 4 我試圖檢索收集與約束,但如預期與約束
模型Caracteristique這是行不通的工作
public function caracteristique() {
return $this->belongsTo('Caracteristique','id','id_caracteristique');
}
public function produit() {
return $this->belongsToMany('Produit','produit_valeur');
}
模型categorie
public function produit() {
return $this->belongsToMany('Produit','produit_categorie');
}
模型produit
public function valeur() {
return $this->belongsToMany('Valeur','produit_valeur');
}
我想:
Caracteristique,用值,其中categorie = X通過produit
最終目標:要像
caracteristique-能夠解析集合> valeur;
在SQLSELECT c.id,v.id FROM caracteristique c
INNER JOIN valeur v on (v.id_caracteristique = c.id)
INNER JOIN produit_valeur pv on (pv.valeur_id = v.id)
INNER JOIN produit_categorie pc on (pc.produit_id = pv.produit_id)
GROUP by c.id
,當我使用捧場不再口若懸河關係
我已經試過這樣:
$carac = Caracteristique::with(array('valeur.produit.categorie' => function($q) {
$q->whereCategorieId(2);
}))->get();
但約束不尊重..
有任何想法嗎 ?
問候,
覺得這個不好解決...
$values = Valeur::whereHas('produit',function($q) {
$q->whereHas('categorie',function($q) {
$q->where('categorie.id','=',2);
});
})->lists('id');
$carac = Caracteristique::with(array('valeur' =>function ($q) use($values) {
$q->wherein('id',$values);
}))->get();
有人最佳做法?
嗨,thx回覆,非常驚訝laravel沒有提供嵌套的約束的最佳解決方案,查詢是可怕的! – user3384179 2014-08-29 19:25:13
查詢本身不是那麼糟糕,但你需要的代碼是。有我的公關讓它更容易,但泰勒還沒有合併它https://github.com/laravel/framework/pull/4954 – 2014-08-29 21:05:57
我已經使用laravel本地關係來建立一個基本的,產品,類別,屬性系統。你認爲這是錯誤的做法? – user3384179 2014-08-30 04:42:41