Laravel Eloquent-使用动态数量的WHERE()条件查询

时间:2019-01-29 09:57:06

标签: php laravel eloquent

我有一张2列的表,property_idamenity_id。关系船是多对多的。

所以我有一个值$input['property_amenities']的动态数组,我想找到数组中所有值都为property_id的所有键。

到目前为止,我正在使用whereIn()方法,但这可以获取每个查询的并集(如OR),但是我需要这些条件的AND。

因此返回的每个property_id应该包含输入数组中的每个值。

我想要这样的东西,但这不起作用。

for ($i = 0; $i < count($input['property_amenities']); $i++) {
     $propertieswithAmenities = $propertieswithAmenities- 
      >where('amenity_id', '=',$input['property_amenities'][$i]);
 }
 return $propertywithAmenities->get();

1 个答案:

答案 0 :(得分:0)

这里它将仅通过一个查询就检查数组的数据,而无需添加任何循环。希望它能对您有所帮助。

$propertieswithAmenities::whereIn('amenity_id', collect($input['property_amenities'])->flatten()->all())->get();