我有以下雄辩的关系
class Broker extends Eloquent{
public function configurable(){
return $this->morphTo();
}
}
class ProductConfiguration extends Eloquent{
public function productConfigurations()
{
return $this->morphMany('Excel\Products\ProductConfiguration','configurable');
}
}
我可以通过这样做很容易地找到属于Broker的所有ProductConfiguration:
$broker = Broker::find($id);
$productConfigurations = $broker->productConfigurations;
我不清楚的是如何指定ProductConfigurations的条件,所以如果我的ProductConfiguration有一个type
字段,例如:
$broker = Broker::find($id);
$productConfigurations = $broker->productConfigurations->where('type' = 'reg');
检查文档我无法确切地知道如何做到这一点。
答案 0 :(得分:4)
好吧,一定要暂时大脑冻结或其他东西,就像这样容易:
$broker = Broker::find($id);
$configurations = $broker->productConfigurations()
->where('type',$type)
->get();;
答案 1 :(得分:0)
你可以用另一种方式, 请注意
morphMany(),hasOn(),hasMany()
等关系方法都返回一个
的实例\Illuminate\Database\Eloquent\Relations\
这意味着您可以使用此代码,
public function productConfigurations()
{
$relation= $this->morphMany('Excel\Products\ProductConfiguration','configurable');
**return $relation->->where('type',$type);**
}