Синтаксис маршрутизации CakePHP

#cakephp #syntax #routes

#cakephp #синтаксис #маршруты

Вопрос:

Как мне создать простой маршрут в CakePHP?

Мне нужно, чтобы каждый URL-адрес был перенаправлен путем замены действия и контроллера. Я просто не мог понять синтаксис заполнителей.

Пример:

 /files/read/3
  

Для

 /read/files/3
  

— дополнительный —

В моем приложении я использую псевдонимы для контроллеров. и я хочу перенаправить каждый URL-адрес, содержащий определенное ключевое слово, в качестве действия на определенный контроллер.
Я также хочу указать исходное имя контроллера в качестве параметра.
Вот пример 1: 1: Для алис есть: fruits и streets .
Ключевое слово, которое я хочу перехватить в действии, это find .
Новое имя контроллера — finder .
Следующие вызовы соответствуют моему состоянию:
/fruits/find/apple/red и /streets/find/longer
Маршрутизатор должен перехватывать эти URL-адреса и преобразовывать их в:
/finder/fruits/apple/red (или укажите параметры другим способом, я не возражаю) и /finder/streets/longer

Как это должно быть сделано?

Ответ №1:

Вот строка кода, которую вам нужно вставить /app/config/routes.php :

Router::connect('/:action/:controller/*', array('controller' => ':controller', 'action' => ':action'));

Узнайте больше: Как вы можете видеть из книги по CakePHP, существует несколько «зарезервированных» шаблонов для настройки маршрутизации. Примером может служить то, что я использовал в строке выше: :action и :controller . Эти шаблоны позволяют широко настраивать маршруты.

Осторожно: изменение порядка следования контроллеров и действий в URL-адресах может иметь непреднамеренные последствия для функциональности других функций CakePHP. Я не тестировал тщательно, но это всего лишь общее предупреждение.

Осторожно: Кроме того, я заметил, что вы вставили в свой пример: /files/read/3 . Возможно, это был просто какой-то фиктивный пример, но если вы действительно планируете использовать MVC с именем ‘file’, имейте в виду, что это приведет к конфликту с классами ядра CakePHP (например, File модель будет конфликтовать с File классом).

В любом случае, надеюсь, этот ответ вам хорошо поможет. И мне действительно нравится, как изменение имен контроллера и действий делает URL-адрес более читаемым. 😀

Комментарии:

1. Большое вам спасибо @YOMorales , по крайней мере, половина из этого теперь мне понятна. однако я все еще чего-то не понимаю, я добавлю это к самому вопросу.

2. Привет: Я постараюсь ответить на ваш вопрос позже, но сейчас я очень занят. 🙂