DJZT
@DJZT
Laravel - code for you

Как организовать сортировку по связи один ко многим?

Как организовать сортировку по связи?
У продукта есть цены. Текущая цена выбирается по добавленной последней. Цена хранится как отдельный объект Price.
Product{
    public function prices(){
        return $this->hasMany(Price::class);
    }

    public function price(){
        return $this->prices()->orderBy('created_at', 'desc')->first();
    }
}


Как сделать отсортированный вывод продуктов по цене? Сортировать по результату выборки не подходит. Надо в запросе.
  • Вопрос задан
  • 554 просмотра
Пригласить эксперта
Ответы на вопрос 2
В Laravel можно сортировать по нескольким параметрам.

User::orderBy('name', 'DESC')
    ->orderBy('email', 'ASC')
    ->get();


сам запрос формируется таким образом.

SELECT * FROM `users` ORDER BY `name` DESC, `email` ASC


Либо приджойнить товары по Id и сортировать уже по общей таблице.
Ответ написан
AmdY
@AmdY
PHP и прочие вебштучки
$price = Price::orderBy('created_at', 'desc')->first();
$products = $price->products;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы