集合WhereIn方法

时间:2019-01-04 17:01:37

标签: php laravel

我正在尝试过滤一个集合,但是最后一行中的代码不起作用。在此行中,$property->county_idintegerparams.county_idarray。我想知道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');

3 个答案:

答案 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']);
            });;