cakephp 3.x如何为管理相关操作设置路由

时间:2015-10-28 05:43:10

标签: routing cakephp-3.0

我在我的UsersController中创建了一个管理员登录功能,并且工作正常,我在routes.php文件中创建了管理路由规则我的routes.php管理例程的代码在

下面
Router::prefix('admin', function ($routes) {
    // All routes here will be prefixed with `/admin`
    // And have the prefix => admin route element added.

    $routes->connect('/', ['controller' => 'Users', 'action' => 'login']);

});

我的用户控制器功能在

之下
function login() {
    $this->set("title_for_layout", "Login to your account");
    $user = $this->Users->newEntity();

    if ($this->request->is('post',"put")) {

        if(!empty($this->request->data)){
            $user = $this->Auth->identify();
            if ($user) {
                $this->Auth->setUser($user);
                return $this->redirect(['controller'=>'users','action'=>'dashboard']);
            }
        }
    }
    $this->set(compact("user"));
    $this->viewBuilder()->layout('login');
}

如登录后显示的ablove代码我将管理员用户重定向到仪表板但是当我登录时总是显示错误,找不到路线匹配,如图enter image description here所示

请告诉我我该怎么做才能解决这个问题,因为蛋糕2.0我们只为管理员和前面添加一条规则,之后使用重定向或href链接重定向到其他控制器和动作所以有任何方式我有为路由创建了上述规则,而不是自动重定向到用户控制器仪表板功能,或者我必须为每个操作创建路由

谢谢

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

Router::prefix('admin', function ($routes){
    $routes->connect('/', ['controller'=>'Users', 'action'=>'login']);
    $routes->connect('/:controller/', [], ['routeClass' => 'Cake\Routing\Route\InflectedRoute']);
    $routes->connect('/:controller/:action/*', [], ['routeClass' => 'Cake\Routing\Route\InflectedRoute']);
});

你的问题应该解决! :)