2017-07-25 93 views
0

我想访问使用路由中占位符的名称在config/routes.php中定义的GET变量。CakePHP 3.x通过路由GET参数名称到控制器

在下面的示例中,我试图在控制器中设置:school_id =到$id

路由代码config/routes.php

Router::connect('/schools/:school_id/students', [ 
    'controller' => 'Schools', 
    'action'=> 'index' 
]); 

控制器代码src/Controller/SchoolsController.php

public function index(){ 
     $id = $this->request->params['pass']['school_id']; 
}; 

在这种情况下$this->request->params['pass']['school_id'];未设置。如果我改为写$this->request->params['pass'][0];,则显示:school_id值。

有没有办法使用它的名字而不是0访问应该在:school_id的地方的url值?换句话说,我可以使用我在routes.php文件中定义的命名键来引用它吗?

回答

0

您可以使用此语法获取参数。

$this->request->getParam(); 
+0

我已经尝试过'$ this-> request-> param('school_id')'并且它不返回任何东西。当我尝试'getParam()'它说该方法不存在。我在Cake 3.3.15上。 – cwarne