Установив 'prefix' => 'admin'
, вы сообщаете CakePHP, что вы хотите использовать префикс admin
для этого маршрута; в основном означает, что вы хотите использовать действия и представления контроллера, которые имеют имена с префиксом admin_
. Эта часть, о которой вы уже знаете, и все будет хорошо работать с этим.
При создании маршрутов, хотя, любой массив ключей, принятые во второй аргумент, которые не распознаются CakePHP (т.е.. Не ваш обычный controller
, action
, plugin
, prefix
материал) устанавливаются как именованные параметры во время запросов, соответствующих этому маршруту.
Таким образом, добавление 'admin' => true
- это просто именованный параметр, но он имеет свои преимущества. Во-первых, он может сделать код более кратким.
/* Determine if a request came through admin routing */
// without:
if ($this->params['prefix'] == 'admin') {}
// with:
if ($this->params['admin']) {}
/* Create a link that is reverse-routed to an admin prefixed route */
// without:
$html->link('...', array('prefix' => 'admin', 'controller' => 'users'));
// with:
$html->link('...', array('admin' => true, 'controller' => 'users'));
Во-вторых, он обеспечивает обратную совместимость с маршрутизацией способом админ работал в CakePHP 1.2 (последняя строка из приведенного выше примера, как вы сделали бы ссылки администратора маршрутизации в 1.2). Поэтому разработчики, мигрирующие с 1.2 до 1.3, могут не иметь возможности менять ссылки во всем своем приложении, сохраняя флаг 'admin' => true
на своих маршрутах (и добавляя 'prefix' => 'admin'
).
И наконец, установив собственный флаг как этот с именованным параметром и используя его в своем приложении, вместо того, чтобы ссылаться на ваш маршрут с помощью точной строки, вы не позволяете себе изменять ссылки, если вы измените префикс на что-то else (скажем от admin
до administrator
или edit
) ... хотя это своего рода спорная точка, так как вам нужно будет переименовать все свои действия и представления контроллера . :)
Спасибо, только что мне нужно – Rob