cakephp 2.6在路由器中没有通过params

时间:2015-07-31 03:44:27

标签: php arrays cakephp

这是我的代码:

Router::connect('/edit_topic/:id', array('controller' => 'topics', 'action' => 'edit'),array('pass' => array('id'),'id' => '[0-9]+'));

结果:

debug($this->request);
die();  

是这样的:

object(CakeRequest) {
params => array(
    'plugin' => null,
    'controller' => 'topics',
    'action' => 'edit',
    'named' => array(),
    'pass' => array(
        (int) 0 => '14'
    ),
    'id' => '14'
)

由于你无法看到我们在两个地方找到了id,内部传递数组,以及params数组,这就是我的问题。 我想解决这个问题,因此id只出现在传递数组

1 个答案:

答案 0 :(得分:3)

这是您无法更改的预期行为。使用的任何路径元素(在您的情况下为:id)都将在CakeRequest::$params属性下提供,并且由于您已将其设置为“已通过”,因此它也可在params['pass']下使用。

你唯一的选择是在控制器的params['id']回调中取消设置beforeFilter()。虽然我真的不明白为什么这是一个问题。