Под переменной вы подразумеваете параметры строки запроса GET, как в /foo?key=value
? Вы можете получить к ним доступ в контроллере через объект запроса : $this->request->query['key']
.
Если вы ищете что-то более интегрированное, вы можете использовать стандартные маршруты CakePHP или создать свои собственные.
Маршруты по умолчанию работают с URL-адресами, такими как /controller/action/param1/param2
, и передают параметры действию по позиции. Например, /posts/view/521
отображается на вызов view(521)
в PostsController
, а /posts/byMonth/2012/02
отображается на вызов byMonth("2012","02")
.
Вы также можете использовать именованные параметры, и URL выглядят как /controller/action/key1:value1/key2:value2
. В действиях контроллера вы можете прочитать их с $this->params['named']['key1']
.
С помощью пользовательских маршрутов вы можете создавать свои URL-адреса как угодно. Вы не обязаны использовать шаблон / controller / action; Вы можете сделать /archives/2012-02
map для PostsController::byMonth(2012,2)
, или /512-post-title
map для PostsController::view(512)
.
Обычно вы начинаете с маршрутов по умолчанию и добавляете собственные маршруты, когда решаете, что они вам нужны. Вы можете прочитать все о стандартных и пользовательских маршрутах в http://book.cakephp.org/2.0/en/development/routing.html