@naneri
PHP разработчик.

Как работает в laravel динамическая маршрутизация?

Прописал в роутере в Laravel вот такой маршрут:

Route::controller('post', 'PostController');

По идее он должен все запросы вида "yoursite/post/{method}/{arg1}/..." передавать в контроллер "PostController", но почему то он вообще не видит роуты и как я понял вообще не может производить динамическую маршрутизацию (то есть на каждый УРЛ надо прописывать маршрут).
(Выдаёт ошибку "Route [post/add] not defined" хотя у меня есть метод "getAdd" и я даже попробовал его переименовать просто в "add"

Правильно ли я всё понял, или всё таки можно не прописывать?
  • Вопрос задан
  • 4928 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Laravel использует Symfony/Routing. Чисто теоритически при помощи экспрешенов можно реализовать динамическую маршрутизацию, но вообще такой подход считается не-по-феншую.

Но вообще да. Один акшен контроллера - один или более маршрутов.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
AmdY
@AmdY
PHP и прочие вебштучки
(Выдаёт ошибку "Route [post/add] not defined" хотя у меня есть метод "getAdd"

Экшены должны состоять из метода запроса и имени из урла
если пост запрос, то имя будет public function postAdd(....), а не getAdd
Ответ написан
@claymor
Странно.
Роутер: Route::controller('test', 'TestController');
запрос URL: site.../test/add/12
Нормально ловится методом в контроллере TestController
public function getAdd($param) {
return $param; //результат 12
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы