私はProperty
モデルにbelongstoMany
の関係を持っています。Laravel whereクエリが関連する結果を返しません
$amenities = Array
(
[1] => 1
[2] => 0
[3] => 1
[25] => 0
[26] => 0
)
キーはアメニティIDであり、値が(ブール値)trueまたはfalseである:私はそれらのparamsを持っている私のpost
方法に続いて
public function amenities()
{
return $this->belongsToMany('App\Amenity', 'property_amenities', 'property_id', 'amenity_id')
->withPivot('status');
}
。私はこのクエリを構築するように、関連性の高い結果を照会しようとしています。この情報に基づいて
:
$properties = Property::whereHas('amenities', function($query) use($amenities){
foreach($amenities as $amenityID=>$status)
{
$query->where('property_amenities.id', $amenityID);
$query->where('property_amenities.status', $status);
}
});
return $properties->get();
だから、自然言語で、私は金属製のドア(ステータス1でamenity_id 1)を持っているとし、すべてのプロパティをしたいですホーン(状態0のamenity_id 2)はありません。
この瞬間に私のクエリはすべてのプロパティを返します。
これは '$ amenities'パラメータに基づいてプロパティを返しません。 –