#laravel
Вопрос:
В моем приложении я хочу упорядочить свои сообщения по категориям в числовом порядке.
Поэтому, я думаю, мне нужна таблица сопоставления, подобная этой:
category_id | post_id | sort_order
затем настройка своего рода «модели заказа» с конкретными методами, которые обрабатывают все это и используют эту модель как связь с моделью Post.
Но прежде чем я начну этот проект, я хотел бы знать, нет ли пакета Laravel, который выполняет эту работу, или другого решения, которое я, возможно, пропустил.
Ответ №1:
Я не уверен на 100%, правильно ли я понимаю ваши потребности, но я предполагаю, что ваши сообщения хранятся в БД. Затем вы можете просто напрямую получать упорядоченные записи из базы данных:
$posts = DB::table('posts')
->orderBy('category_id ', 'asc')
->orderBy('post_id', 'asc')
->get();
Смотрите документацию:
https://laravel.com/docs/8.x/queries#ordering-grouping-limit-and-offset
Я не думаю, что вам нужна модель заказа или что-то подобное, чтобы реализовать это.
Комментарии:
1. Ваше решение могло бы работать, если бы сообщения принадлежали только к одной категории, но в моей модели Post сообщение может фактически принадлежать нескольким категориям, отсюда и модель заказа…
2. можете ли вы рассказать нам, как выглядит ваша структура БД?
3. Структура состоит из 2 базовых таблиц для записей и категорий (id, name, created_at …) плюс сводная таблица для отношения belongsToMany.