CakePHP 3.x将路由获取参数名传递给控制器
我试图使用路由中占位符的名称访问在CakePHP 3.x将路由获取参数名传递给控制器,php,cakephp,controller,routing,cakephp-3.0,Php,Cakephp,Controller,Routing,Cakephp 3.0,我试图使用路由中占位符的名称访问在config/routes.php中定义的GET变量 在下面的示例中,我试图在控制器中将:school\u id=设置为$id 路由代码config/Routes.php: Router::connect('/schools/:school_id/students', [ 'controller' => 'Schools', 'action'=> 'index' ]); public function index(){
config/routes.php
中定义的GET变量
在下面的示例中,我试图在控制器中将:school\u id
=设置为$id
路由代码config/Routes.php
:
Router::connect('/schools/:school_id/students', [
'controller' => 'Schools',
'action'=> 'index'
]);
public function index(){
$id = $this->request->params['pass']['school_id'];
};
控制器代码src/Controller/SchoolsController.php
:
Router::connect('/schools/:school_id/students', [
'controller' => 'Schools',
'action'=> 'index'
]);
public function index(){
$id = $this->request->params['pass']['school_id'];
};
在这种情况下,$this->request->params['pass']['school\u id']代码>未设置。如果我改为写入$this->request->params['pass'][0],则会显示:school_id
值代码>
有没有一种方法可以使用url的名称而不是0
来访问应该位于:school\u id
位置的url值?换句话说,我可以使用routes.php文件中定义的命名键引用它吗?您可以使用此语法获取参数
$this->request->getParam();
我尝试了$this->request->param('school_id')
,但它没有返回任何内容。当我尝试getParam()
时,它说该方法不存在。我正在使用蛋糕版本3.3.15。