Laravel Красноречив, В чем Проблема использования С

#laravel

Вопрос:

 $data['orders'] = OrderReturn::with(['order_detail.products','order_detail.products.Companies'])
                              ->whereHas('order_detail',function($query){
                                 $query->where('status','lifted');
                              })
                             ->where('customer_id',hashids_decode($id))
                             ->where('status','lifted')
                             ->get();
 

Где здесь не работает, но если я использую, где внутри с этим работает так

 $data['orders']=OrderReturn::with(['order_detail.products','order_detail.products.Companies','order_detail'=>function($query){
                $query->where('status','lifted');
            }])
            ->where('customer_id',hashids_decode($id))
            ->where('status','lifted')
            ->get();
 

в чем проблема с первым?

Комментарии:

1. Вы ищете внутреннее соединение?

2. Что значит «не работает»? Слишком много результатов? Слишком мало результатов? Ошибка? Обратите внимание, что 2-й отличается от 1-го тем, что 2-й фильтрует отношения на основе условия (это означает, что вы получаете меньше связанных моделей), в то время как первый фильтрует первую модель на основе условия отношений (это означает, что вы потенциально получаете меньше OrderReturn моделей)

3. order_detail это отношения. вы не можете использовать whereHas снаружи with . Это логика

4. Я просто хочу установить условие, если статус order_detail отменен, а затем извлеките только запись.