内部加入Laravel Eloquent

时间:2018-02-01 00:26:04

标签: php laravel orm eloquent

我是Laravel的新手,我非常喜欢。

我提出了一个查询并且它正在运行,但我想知道是否有更优雅的方法来实现它。 我有一个Product表和一个Manufacturer表。关系是:

$products = \App\Product::join('manufacturers', 
        'products.manufacturer_id', '=', 'manufacturers.id')
    ->where('manufacturers.name', 'like', $needle)
    ->orWhere('products.name', 'like', $needle);

我的查询是:

join

这是对的吗?有没有更好的办法?也许没有在Eloquent模型中使用Dim na As Variant, fn As String na = Application.Transpose(Application.Transpose(Range("b1:f1").Value2)) fn = Join(na, "-") Debug.Print fn

感谢。

1 个答案:

答案 0 :(得分:2)

Product模型中创建关系:

public function manufacturer()
{
    return $this->belogsTo(Manufacturer::class, 'foreign_key');
}

然后你可以使用

$products = \App\Product::whereHas('manufacturer', function ($query) use ($needle) {
    $query->where('name', 'like', $needle);
})->orWhere('name', 'like', $needle);