在Eloquent ORM中使用leftJoin方法?

时间:2017-11-18 20:28:49

标签: php laravel-5 eloquent left-join laravel-eloquent

我是Laravel的初学者,我正在使用5.5版本。

在Eloquent ORM中是否有一个方法leftJoin?

我知道DB facade(查询构建器)上有一个,但是如果我想使用Eloquent只有一个leftJoin方法吗?

我们假设,作为一个例子,我有一个模型CarBrand和另一个CarModel。 CarBrand的关系类型hasMany与CarModel,CarModel属于CarBode。

假设我想在没有CarModel对应的情况下找到CarBrand的id。

我在这个网站上发现了几个这样的回答:

CarBrand::leftJoin('CarModelTableName',
    'CarBrandTableName.id','=','CarModelTableName.carBrandId')->
    whereNull('CarModelTableName.carBrandId')->first();

我已经检查过,它确实起到了左连接的作用:)

但是在这种情况下 :: leftJoin 是一个Eloquent方法还是静默地进入DB facade?

除了DB facade之外,我在Laravel 5官方文档中找不到leftJoin。 任何链接都将不胜感激。

希望我很清楚,

感谢您的关注。

1 个答案:

答案 0 :(得分:0)

我想我找到了答案......

我发现我可以使用类似的东西:

LaravelModellName::AnyQuerryBuilderMethod

这就是使用数据库外观方法的原因

我的主要问题中的问题可以使用doesntHave模型方法以雄辩的方式100%解决:

 $result = CarBrand::doesntHave('RelationshipNameWithCarModel')->get();