2015-07-22 2 views
0

Он не сортирует дочерние записи. У меня есть поле в БД называется order Вот мой код:Laravel 5: сортировка дочерних записей

$offer = Offer::find($id); 
$offer->service->sortBy('order', true); 

return $offer; 

Хотя я получаю множество услуг, если я использую SortBy, без этого есть только данные в формате JSON.

Любые идеи, почему это не сортирует? Заранее спасибо. Если вам нужен дополнительный код, пожалуйста, дайте мне знать.

+1

Второй параметр 'sortBy' не является' true/false', это 'int $ options = SORT_REGULAR'. – ceejayoz

+0

Вы можете добавить это в правильный ответ, спасибо. –

ответ

1

Второй параметр sortBy не true/false, это int $options = SORT_REGULAR. Вероятно, Laravel не знает, что делать с вашим значением true.

0

Примечание: Я предполагаю, что $ предложение-> Сервис является OneToMany/ManyToMany отношения - название предполагает, что это не так, но если вы ожидаете, широкий спектр услуг, то она должна быть OneToMany/ManyToMany отношения.

Для того, чтобы получить услуги, отсортированные по заказу вам необходимо загрузить предлагает этот путь:

$offer = Offer::with(['service' => function($builder) { 
    $builder->sortBy('order'); 
}])->get(); 
Смежные вопросы