3.4.5.5 Roteando prefixos
The original text for this section has changed since it was translated. Please help resolve this difference. You can:
Várias aplicações necessitam de uma seção para usuários administradores com privilégios de alteração de dados. Muitas vezes isso é definido na url, como /admin/users/edit/5. No CakePHP é possível utilizar uma rota para administradores mapeando a nossa seção no arquivo de configuração para Routing.admin.
Configure::write('Routing.admin', 'admin'); Configure::write('Routing.admin', 'admin');
Você pode definir quais métodos do seu controller usarão a rota de administrador bastando iniciar o nome do método com o prefixo admin_. Usando o nosso exemplo para acessar uma url de administração usuários /admin/users/edit/5 deveremos ter o o método admin_edit em nosso UsersController informando que o primeiro parâmetro é o número 5.
Você pode mapear a url /admin para a sua ação inicial admin_index alterando o arquivo de configuração de rotas.
Router::connect('/admin', array('controller' => 'pages', 'action' => 'index', 'admin' => true)); Router::connect('/admin', array('controller' => 'pages', 'action' => 'index', 'admin' => true));
Você pode configurar o seu arquivo de configuração para utilizar vários prefixos também:
Router::connect('/profiles/:controller/:action/*', array('prefix' => 'profiles', 'profiles' => true)); Router::connect('/profiles/:controller/:action/*', array('prefix' => 'profiles', 'profiles' => true));
As ações(métodos) que pertençam à seção de profiles devem ter seus nomes iniciados com o prefixo profiles_. A estrutura da url do nosso exemplo da seção de profiles de usuários é /profiles/users/edit/5 que fará chamada ao método profiles_edit no nosso UsersController. É importante lembrar que usando o HTML Helper do cakePHP para montar nossos links já estaremos montando o nosso link de forma correta. Abaixo há um exemplo de como construir o nosso link utilizando o HTML helper.
echo $html->link('Edite seu perfil', array('profiles' => true, 'controller' => 'users', 'action' => 'edit', 'id' => 5)); echo $html->link('Edite seu perfil', array('profiles' => true, 'controller' => 'users', 'action' => 'edit', 'id' => 5));
Você pode setar vários prefixos no roteador do cakePHP criando uma estrutura flexível de URL's para a sua aplicação.


























