Roteamento Cakephp 3 com parâmetro de idioma
Estou tentando converter cakephp 2.x para 3.x. Eu estava usandoRouter::connect()
regras, mas tento convertê-las para a versão do escopo.
Em relação à regra de roteamento myold, emconfig/routes.php
Eu adicionei isso.
Router::defaultRouteClass('Route');
Router::scope('/', function ($routes) {
$routes->connect('/:language/:controller/:action/*', ['language' => 'ar|de|en|fr']);
$routes->connect('/:language/:controller', ['action' => 'index', 'language' => 'ar|de|en|fr']);
$routes->connect('/:language', ['controller' => 'Mydefault', 'action' => 'index', 'language' => 'ar|de|en|fr']);
$routes->redirect('/gohere/*', ['controller' => 'Mycontroller', 'action' => 'myaction'], ['persist' => array('username')]);
$routes->connect('/', ['controller' => 'Mydefault', 'action' => 'index']);
$routes->fallbacks('InflectedRoute');
});
Mas isso falha emexample.com/en/works
. Eu recebo este erro:Error: worksController could not be found.
Porque meu arquivo de controlador éWorksController.php
.A parte do nome do controlador está pendurada na sentença caseína cakephp 3?http://book.cakephp.org/3.0/en/intro/conventions.html#controller-conventions
Além dissoexample.com/foo/bar
dá este erro:Error: barController could not be found.
. Masfoo
é controlador ebar
é ação.Como posso corrigir esse problema de roteamento?
Editar:
MudandoRoute::defaultRouteClass('Route')
paraRoute::defaultRouteClass('InflectedRoute')
problema resolvido 1. Mas o problema 2 existe.