这是我的代码:
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只出现在传递数组
中答案 0 :(得分:3)
这是您无法更改的预期行为。使用的任何路径元素(在您的情况下为:id
)都将在CakeRequest::$params
属性下提供,并且由于您已将其设置为“已通过”,因此它也可在params['pass']
下使用。
你唯一的选择是在控制器的params['id']
回调中取消设置beforeFilter()
。虽然我真的不明白为什么这是一个问题。