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