我正在尝试过滤一个集合,但是最后一行中的代码不起作用。在此行中,$property->county_id
是integer
,params.county_id
是array
。我想知道array
包含integer
。
我认为代码是错误的,因为密钥(也许)必须是params.county_id
。我该怎么做?
谢谢答案。
$buyerSearches = collect($items);
$result = $buyerSearches
->where('params.type', '=', $property->type)
->where('params.sale_type', '=', $property->sale_type)
->whereIn('params.contract_type', ['all', $property->contract_type])
->where('params.min_price', '<=', $property->price)
->where('params.max_price', '>=', $property->price)
->whereIn($property->county_id, 'params.county_id');
答案 0 :(得分:0)
请尝试以下代码:
->whereIn('county_id', 'params.county_id');
答案 1 :(得分:0)
请确保whereIn中的第二个参数是一个数组,或者在$ result查询之前创建该数组,然后在下一个使用。
答案 2 :(得分:0)
我解决了,它有效:)
$result = $buyerSearches
->where('params.type', '=', $property->type)
->where('params.sale_type', '=', $property->sale_type)
->whereIn('params.contract_type', ['all', $property->contract_type])
->where('params.min_price', '<=', $property->price)
->where('params.max_price', '>=', $property->price)
->filter(function($buyerSearch) use ($property) {
return in_array($property->county_id, $buyerSearch['params']['county_id']);
});;