Ich versuche, CakePHP 2.x zu 3.x zu konvertieren. Ich habe Router::connect()
Regeln verwendet, aber ich versuche, sie in die Scope-Version zu konvertieren.CakePHP 3 Routing mit Sprachparameter
In Bezug auf Myold Routing-Regel, in config/routes.php
habe ich dies hinzugefügt.
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');
});
- Aber das scheitert in
example.com/en/works
. Ich bekomme diesen Fehler:Error: worksController could not be found.
Weil meine Controller-DateiWorksController.php
ist.
Ist Controller Name Teil auf Satz Casein CakePHP 3 gehängt? http://book.cakephp.org/3.0/en/intro/conventions.html#controller-conventions
- Auch
example.com/foo/bar
gibt diesen Fehler:Error: barController could not be found.
. Aberfoo
ist Controller undbar
ist Aktion.
Wie kann ich dieses Routing-Problem beheben?
Edit:
Ändern Route::defaultRouteClass('Route')
-Route::defaultRouteClass('InflectedRoute')
gelöstes Problem 1. Aber Problem 2 besteht.
Es muss eine Linie sein 'Strecke :: defaultRouteClass ('Route') 'oben auf Ihrer routes.php. Ändern Sie es in 'Route :: defaultRouteClass ('InflectedRoute')'. – ADmad
Dieser feste Fehler 1. Aber Fehler 2 existiert. Wenn ich 'example.com/foo/bar' betrete, sucht cakephp nach barController. – trante