Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Собираюсь переводить используемую во многих проектах 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 очень ограниченно описывает первую задачу.
Не в сети
Добрый день, если я правильно понял
У роутов есть возможность вложить переменную в запрос
blog/{id}, и передать id в BlogController@index, в экшне public function index($id){}
Либо там же вызвать функцию замыкания и передать туда $id.
В целом, я так понимаю, ваш вопрос можно оптимизировать до
Можно ли переменную {id} подставить в вызванный контролллер, например idController@index, верно? Попробуйте так поискать
Вообще, если явно не указать get запрос в роуте, а он есть, то он будет автоматически добавляться в урл.
В любом случае, можно добавить в роут ?page={id} и передать также id в контроллер.
Первый вопрос про маршрутизацию не совсем понятен, вернее его сложность) Обычная практика создавать модели, в ларавел есть инструмент, чтобы легко обойтись от сложных запросов, и вы можете все эти связи реализовать в модели. Зачем вам выгружать логику? Не совсем понятно:)
Не в сети
In the context of URLs and routing, "one segment" typically refers to a URL with only one part after the domain name, without any further path separators (/). This segment can be used for various purposes, including mapping to a specific controller, action, or resource. Routing systems, like those used in web applications, interpret these segments to determine which part of the application to display or which action to perform.
Не в сети
In the context of URLs and routing, «one segment» typically refers to a URL with only one part after the domain name, without any further path separators (/). This segment can be used for various purposes, including mapping to a specific controller, action, or resource. Routing systems, like those used in web applications, interpret these segments to determine which part of the application to display or which action to perform.
Не в сети