Laravel Eloquent ORM查询关系里面的关系
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel Eloquent ORM查询关系里面的关系相关的知识,希望对你有一定的参考价值。
好吧,我仍在使用Eloquent ORM,并且无法想到一个“快速”的解决方案:现在我想我需要重新创建以下mysql查询:
SELECT *
FROM properties
LEFT JOIN property_environments ON property_environments.property_id = properties.id
LEFT JOIN environments ON property_environments.environment_id = environments.id
WHERE environments.name = "Rooms"
AND property_environments.value = 2
我应该说所有表都有所需的外键,其中:
- 物业 -
AppProperty
- property_environments -
AppPropertyEnvironment
- 环境 -
AppEnvironments
因此,我想选择所有具有名称为“Rooms”且其值为2的环境的属性。
所以我对此有任何意见。
答案
如果您还没有这样做,请创建多对多关系。然后你可以做一些事情
Property::whereHas('environment', function($query) {
$query->where('name', 'Rooms')
->where('value', 2);
})
->get();
以上是关于Laravel Eloquent ORM查询关系里面的关系的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Eloquent ORM - 选择所有两个关系都不存在的模型时,生成的 SQL 和查询构建器结果不匹配
Laravel5.6 Eloquent ORM 关联关系,一对一和一对多