Мои таблицы выглядят так
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 добавлены выше
вы, вероятно, захотите проверить сгенерированный здесь запрос и размещение or.
@lagbox как проверить сгенерированный запрос? также я попытался удалить или, как вы предложили, и теперь я не получаю никакого результата
Мне все еще трудно понять, что должно быть в результате здесь. можешь быть точнее. :)
@ashish Я отправляю dispatch_id и equipment_id, поэтому мне нужны все строки, соответствующие обоим. В настоящее время я получаю все результаты, соответствующие только disptach_id






Я считаю, что ваш подзапрос 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());
как устанавливаются отношения в их моделях ??