【问题标题】:CakePHP 3.x Passing Route GET Parameter Name to ControllerCakePHP 3.x 将路由 GET 参数名称传递给控制器
【发布时间】:2017-07-25 03:30:05
【问题描述】:

我正在尝试使用路由中占位符的名称访问在 config/routes.php 中定义的 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 文件中定义的命名键来引用它吗?

【问题讨论】:

    标签: php cakephp controller routing cakephp-3.0


    【解决方案1】:

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

    $this->request->getParam();
    

    【讨论】:

    • 我试过$this->request->param('school_id'),但它没有返回任何东西。当我尝试getParam() 时,它说该方法不存在。我在 Cake 版本 3.3.15 上。
    猜你喜欢
    • 1970-01-01
    • 2016-05-16
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    相关资源
    最近更新 更多