Laravel Eloquent ORM查询关系里面的关系

问题描述 投票:0回答:1

好吧,我仍在使用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

我应该说所有表都有所需的外键,其中:

  • 物业 - App\Property
  • property_environments - App\PropertyEnvironment
  • 环境 - App\Environments

tables

因此,我想选择所有具有名称为“Rooms”且其值为2的环境的属性。

所以我对此有任何意见。

php mysql laravel laravel-5 eloquent
1个回答
1
投票

如果您还没有这样做,请创建多对多关系。然后你可以做一些事情

Property::whereHas('environment', function($query) {
        $query->where('name', 'Rooms')
              ->where('value', 2);
    })
    ->get();
© www.soinside.com 2019 - 2024. All rights reserved.