Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Общий раздел » Несколько вопросов по маршрутизации: URL с одним сегментом и пр. » 02.05.2020 14:26:52

mick_ekb
Ответов: 1

Собираюсь переводить используемую во многих проектах CRM на что-то современное. Возникло несколько вопросов, на которые я не могу нагуглить нормальных ответов (это не значит, что я не нагуглил костылей, но меня интересуют нормальные решения):
1) Как нормально организовать маршрутизацию так, чтобы урл состоял из одного сегмента. Т.е. http://site.com/ONE
При этом соответствие контроллер+метод для ONE хранится в БД. Таких страниц может быть много (но не очень, порядка 200 000). Понятно, что я могу направить все страницы на один контроллер, а дальше вызвать из контроллера другой контроллер. Есть ли другой, нормальный, метод?
2) Как нормально организовать маршрутизацию так, чтобы урл состоял из вложенных сегментов. Допустим, у меня есть каталог неограниченной вложенности. Хочу, чтобы урлы были: http://site.com/категория1/подкатегория … ия1.1.1/ну и т.д При этом требуется, чтобы можно было переключать через БД/файл конфигурации тип урл на сайте между 1 (первой частью вопроса) и 2. Как нормально реализовать такое?
3) Допустим, у клиента ранее был сайт с совершенно случайно структурой урл. Мне нужно скопировать этот сайт на laravel, сохранив структуру. Т.е. каждой странице ставится в соответствие какая-то строка, м.б. даже с get-параметрами. Как маршрутизировать такое?
4) Допустим, известно, что первый сегмент урл - город (может быть пустым). Например, страницы http://site.com/ONE, http://site.com/spb/ONE и  http://site.com/orel/ONE должны маршрутизироваться одинаково. Список городов хранится в БД, он небольшой (100-200 позиций). Как маршрутизировать такое?

Далее пара вопросов не по маршрутизации:
1) Допустим, у меня есть каталог товаров, которые хранятся в отдельной таблице. Есть связанная таблица - поставщики. Я описываю связи в моделях и т.д. Все получается, все работает. Но пусть клиенту нужны только товары. А я не хочу выгружать ему на сервер логику, связанную с поставщиками (то есть модели поставщиков, представления и т.п.). При этом я не хочу иметь две разные модели для каталога товаров. Могу ли я описывать связи между моделями условно (ориентируясь на существование второй модели)?
2) Я хочу сделать визуальную инсталляцию модулей (не хочу добавлять что-то через comoser, хочу через CMS). Какая лучшая практика для этого в laravel?

Буду благодарен даже ключевым словам по каждому из запросов. Например, database driven routing очень ограниченно описывает первую задачу.

Подвал раздела