Запрос коллекции Laravel, где я ошибаюсь?

Мои таблицы выглядят так

area_trip

|id|dispatch_id|trip_id|status|

equipment_trip

|equipment_id|trips_id|dispatch_id|

trips

|id|dispatch_id|status

Я пытаюсь передать сбор на свой ресурс. Может ли кто-нибудь проверить мой запрос и сказать мне, что я делаю неправильно, поскольку следующий запрос, возвращающий все данные, соответствует dispatch_id, соответствует ли он equipment_id или нет. Кстати, я новичок в laravel.

return 
      Resources::collection(
        area_trip::where('dispatch_id', $request->dispatch_id)
    ->where('status', 1)
    ->orWhere('status', 9)

        ->whereHas('equipment_trip', function($query) use ($request) {
            $query->where('equipment_trip.equipment_id', '=', $request->equipment_id);
           })

            ->with(['equipment_trip', 'createdBy', 'updatedBy', 'area', 'trips'])
      ->orderBy('tripStartDate', 'ASC')
      ->orderBy('status', 'ASC')
      ->get());

Вот отношения, установленные в модели area_trip

public function equipment_trip()
{

    return $this->belongsTo(equipment_trip::class, 'trip_id', 'trips_id');

}

как устанавливаются отношения в их моделях ??

ashish 18.07.2018 10:05

отношения @ashish добавлены выше

Zee 18.07.2018 10:08

вы, вероятно, захотите проверить сгенерированный здесь запрос и размещение or.

lagbox 18.07.2018 10:08

@lagbox как проверить сгенерированный запрос? также я попытался удалить или, как вы предложили, и теперь я не получаю никакого результата

Zee 18.07.2018 10:11

Мне все еще трудно понять, что должно быть в результате здесь. можешь быть точнее. :)

ashish 18.07.2018 10:15

@ashish Я отправляю dispatch_id и equipment_id, поэтому мне нужны все строки, соответствующие обоим. В настоящее время я получаю все результаты, соответствующие только disptach_id

Zee 18.07.2018 10:19
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
55
1

Ответы 1

Я считаю, что ваш подзапрос whereHas неверен также вместо where и orWhere, где используется where, и вы можете определить все необходимые статусы, попробуйте следующее:

Resource::collection(area_trip::where('dispatch_id', $request>dispatch_id)
    ->whereIn('status', [1, 9])
    ->whereHas('equipment_trip', function($query) use ($request) {
            return $query->where('equipment_id', '=', $request->equipment_id);
    })
    ->with(['equipment_trip', 'createdBy', 'updatedBy', 'area', 'trips'])
    ->orderBy('tripStartDate', 'ASC')
    ->orderBy('status', 'ASC')
    ->get());

Другие вопросы по теме