如果主模型或Eloquent中的关系上存在列值,如何选择行

时间:2019-05-08 20:15:38

标签: eloquent laravel-5.7

如果具有“产品”模型,该模型的域代码与也具有代码字段的“变异”表具有一对多关系。如果任何一个表的代码值都有某个值,我该如何用雄辩的方式选择行。

我该怎么做:

&p=3

1 个答案:

答案 0 :(得分:1)

考虑您的产品和变体模型如下:

class Product extends Model
{
    protected $table = 'product';

    public function variation()
    {
        return $this->belongsTo('App\Variation', 'product_id', 'id');
    }
}
class Variation extends Model
{
    protected $table = 'variation';

    public function products()
    {
        return $this->hasMany('App\Product', 'id', 'product_id');
    }
}

您可以像这样用Eloquent获取数据:

$code = 'code';

Product::where('code', '=', $code)  // for product table
->orWhereHas('variation', function($query) use ($code) {
    $query->where('code', '=', $code);  // for variation table
});