我有以下 Eloquent 关系

class Broker extends Eloquent{

    public function configurable(){
        return $this->morphTo();
    }
}

class ProductConfiguration extends Eloquent{

    public function productConfigurations()
    {
        return $this->morphMany('Excel\Products\ProductConfiguration','configurable');
    }
}

通过执行以下操作,我可以很容易地找到属于代理的所有ProductConfigurations:
    $broker = Broker::find($id);
    $productConfigurations = $broker->productConfigurations;

我不清楚的是如何为ProductConfigurations指定条件,因此,如果我的ProductConfiguration有type字段,则类似以下内容:
    $broker = Broker::find($id);
    $productConfigurations = $broker->productConfigurations->where('type' = 'reg');

查看文档,我找不到确切的方法。

最佳答案

好吧,一定是暂时性的脑卡住或什么,就像这样简单:

    $broker = Broker::find($id);
    $configurations = $broker->productConfigurations()
            ->where('type',$type)
            ->get();;

关于Laravel为morphMany集合指定条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26193255/

10-13 09:05