无法读取控制器CakePHP中的命名参数

时间:2015-09-17 14:11:18

标签: cakephp cakephp-2.6

我正在尝试将命名参数传递给函数。它实际上在$this->request->is('post')之前传递,但是在此行之后放置的debugKit返回null。是什么给了什么?

路线:

http://localhost/bake/users/login/ref:post

控制器:

public function login() {
    //it returns 'post' here successfully.
    debug($this->params['named']['ref']);
    if ($this->request->is('post')) {
        //it returns 'null' here.
        debug($this->params['named']['ref']);
    }
}

2 个答案:

答案 0 :(得分:0)

我使用了一种伪方法来解决它:

public function login() {
    //set the value to the view.
    $this->set('param', $this->params['named']['ref']);
    if ($this->request->is('post')) {
        $param = $this->request->data['param'];
    }
}

在视图中我添加了一个隐藏字段:

<input type="hidden" name="data[param]" value="post"/>

所以它提交了表单的值。

答案 1 :(得分:0)

如果你很懒:

$this->request->query('ref')

如果你很好奇:

文档here

源代码here