2016-07-18 122 views
2

我在cakephp 3.2中創建了一個路徑,範圍是'/'。但它不起作用。Cakephp 3 routing not working

這是我的代碼。

Router::scope('/', function (RouteBuilder $routes) { 

    $routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']); 

    $routes->connect('/user/:user',['controller'=>'Users','action'=>'myAccount'],['user'=>'/^[a-z0-9_-]$/','pass'=>['user']]); 

    $routes->fallbacks('DashedRoute'); 
} 

當我參觀像http://localhost/mysite/user/username那麼URL就拋出未發現錯誤UserController

我該怎麼辦?

回答

1
$routes->connect(
    '/user/:user', 
    ['controller'=>'Users','action'=>'myAccount'], 
    ['user'=>'/^[a-z0-9_-]$/','pass'=>['user']] 
); 

此路徑元素正則表達式,如果它工作,將限制用戶參數只是一個字符。

要匹配「用戶名」,或任何字符串長於一個字符,有必要修改正則表達式,例如:

$routes->connect(
    '/user/:user', 
    ['controller'=>'Users','action'=>'myAccount'], 
    ['user'=>'[a-z0-9_-]+','pass'=>['user']] 
//     ^   
); 

注意route element regular expressions預計不會是一個完整的正則表達式。

+0

非常感謝。你拯救了我的一天。 – CodeZilla