Здесь мой код:
list($orderBy, $orderDirection) = explode('.', request()->get('sort_by'));
$prestations = Prestation::with([
'service' => function($query) {
$query->select(['id','name']);
},
'facility' => function($query) {
$query->select(['id','name']);
},
'conciergeries.network' => function($query) {
$query->select(['id','name']);
}
])
->whereHas('service', function ($query) use ($searchService) {
$query->where('name', 'regexp', "/$searchService/i");
})
->whereHas('facility', function ($query) use ($searchPartenaire) {
$query->where('name', 'regexp', "/$searchPartenaire/i");
})
->whereHas('conciergeries.network', function ($query) use ($searchFiliale) {
$query->where('name', 'regexp', "/$searchFiliale/i");
})
->where('name', 'regexp', "/$search/i")
->orderBy($orderBy, $orderDirection)
->paginate(50);
Мне нужно, чтобы заказы по service.name
или facility.name
или conciergeries.network.name
, $orderBy
и $orderDirection
исходили из вида:
$orderBy
может иметь следующие значения: «имя», «услуга», «средство», «filiale».
$orderDirection
может иметь следующие значения: «как c» или « des c '.
Я пытался добавить orderBy в запросе with или whereHas, но ничего не работает правильно. Большое спасибо.