Префиксы маршрутизатора
В CakePHP 2.x префиксы немного изменились.
Теперь у вас может быть несколько префиксов, но они должны быть объявлены в файле core.php
.
Configure::write('Routing.prefixes', array('admin','api','json'));
Это объявило бы 3 префикса, и нет необходимости изменять таблицы маршрутизации, чтобы заставить их работать. Слово prefix
означает, что оно ставится перед названием действия при отправке на контроллер.
Например;
class DocumentsController extends AppController
{
public index() { ... }
public admin_index() { ... }
public api_index() { ... }
public json_index() { ... }
}
CakePHP вызовет правильное действие, когда будет запрошен один из этих URL-адресов.
http://example.com/documents/index
http://example.com/admin/documents/index
http://example.com/api/documents/index
http://example.com/json/documents/index
Чего вы не можете сделать, так это использовать более одного префикса за раз. Следующее НЕ будет работать.
http://example.com/admin/json/documents/index
Это потребует пользовательской маршрутизации, потому что CakePHP не знает, какое действие вызывать.
Когда вызывается действие, вы можете указать префиксы в параметрах запроса.
public function beforeFilter()
{
if(isset($this->request->params['admin']))
{
// an admin prefix call is being made
}
}
person
Reactgular
schedule
03.06.2013