Я пытаюсь настроить определение маршрутизации в моем проекте, что позволит пользователям получать профили, просто используя свое имя пользователя в качестве единственного параметра в URL-адресе, например www.example.com/username
, а не www.example.com/user/view/username
Маршрутизация всех определенных параметров в CakePHP
Я установил весь маршрут, чтобы перейти к действию, которое проверяет, существует ли пользователь в качестве последнего маршрута в файле конфигурации, и он работает, но он управляет всей базовой маршрутизацией, которую делает торт , Это означает, что мне нужно будет определить маршрут для каждого контроллера, к которому я хочу предоставить доступ, чтобы убедиться, что я никогда не попаду в него. Мои маршруты:
Router::connect('/events/edit/*', array('controller' => 'events', 'action' => 'edit'));
Router::connect('/events/view/*', array('controller' => 'events', 'action' => 'view'));
Router::connect('/events/add', array('controller' => 'events', 'action' => 'add'));
Router::connect('/events/*', array('controller' => 'events', 'action' => 'index'));
Router::connect('/*', array('controller' => 'users', 'action' => 'view'));
Таким образом, это позволит мне получить доступ к моей странице событий, но любые другие страницы присылают ко второму маршрутизатору, ожидаемо.
Что бы я хотел - это маршрут, который выполняет основную функцию торта /controller/action/param
, если контроллер существует, но провалился до последнего маршрута, который в противном случае идет на страницу user/view
.
Мой вопрос в том, что я пытаюсь выполнить, правильно ли я делаю это? Если мне нужно определить маршрут для каждого контроллера, к которому я хочу получить доступ, я буду, но я должен подумать, что есть лучший способ выполнить это.
Благодаря
Вашего решения работало почти так же, как вы написали. Огромное спасибо. – aviemet
добро пожаловать. –