Laravel Yajra Datatable错误的搜索结果

时间:2019-12-24 07:14:13

标签: php laravel yajra-datatable

我坚持要获得正确的搜索结果。最初的结果是正确的,但是当我尝试搜索时,它只卡了一个值。

这是我的代码,请提供指导和帮助。

                    $model
                        ->where('is_back_order', true)
                        ->whereHas('products', function ($q){
                            $q->where('order_products.is_back_order_product', '=' , true)->where('order_products.arrival_status', '=', 'awaiting_for_arrival');
                        })
                        ->join('presta_status', function($join) use ($presta_filters) {
                            $join->on('orders.store_id', '=', 'presta_status.store_id')
                                ->on('orders.status', '=', 'presta_status.status_code')
                                ->whereNotIn('presta_status.status', $presta_filters);
                        });

在此查询下,我在搜索时未得到正确的结果。 这是完整的代码。 https://gist.github.com/mumer44/0359a47591e7d0f514267ac74a89ebf9

1 个答案:

答案 0 :(得分:0)

尝试此代码:

$model
->join('presta_status', function($join) use ($presta_filters) {
        $join->on('orders.store_id', '=', 'presta_status.store_id')
        ->on('orders.status', '=', 'presta_status.status_code');
   });
->whereNotIn('presta_status.status', $presta_filters)
->where('is_back_order', true)
    ->whereHas('products', function ($q){
        $q->where('order_products.is_back_order_product', '=' , true)
          ->where('order_products.arrival_status', '=', 'awaiting_for_arrival');
    })