Sto provando a convertire da cakephp 2.x a 3.x. Stavo usando le regole Router::connect()
, ma provo a convertirle nella versione dell'ambito.Routing Cakephp 3 con parametro lingua
Riguardo alla regola di routing myold, in config/routes.php
ho aggiunto questo.
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');
});
- Ma questo non riesce a
example.com/en/works
. Viene visualizzato questo errore:Error: worksController could not be found.
Poiché il mio file controller èWorksController.php
.
Il nome del controller parte impiccato alla frase casein cakephp 3? http://book.cakephp.org/3.0/en/intro/conventions.html#controller-conventions
- anche
example.com/foo/bar
dà questo errore:Error: barController could not be found.
. Mafoo
è controller ebar
è azione.
Come posso risolvere questo problema di routing?
Edit:
Cambiare Route::defaultRouteClass('Route')
-Route::defaultRouteClass('InflectedRoute')
risolto problema 1. Ma il problema esiste 2.
Ci deve essere una linea 'Percorso :: defaultRouteClass ('Percorso') 'in cima al tuo route.php. Cambialo in 'Route :: defaultRouteClass ('InflectedRoute')'. – ADmad
Questo errore fisso 1. Ma l'errore 2 esiste. Quando inserisco 'example.com/foo/bar', cakephp cerca barController. – trante