2015-07-31 3 views
1

Вот мой код:CakePHP 2.6 прошли PARAMS в маршрутизаторе не работает

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 в двух местах, внутри массива pass, а также внутри массива params, это моя проблема. Я хочу исправить это, так что id появляется только внутри массива pass

+2

«это моя проблема» - какая проблема/ошибка/что это значит? – AD7six

ответ

3

Это ожидаемое поведение, которое вы не можете изменить. Любой использованный элемент маршрута (:id в вашем случае) будет доступен под номером , и поскольку вы установили его в «пройденный», он также доступен под номером params['pass'].

Только у вас есть опция unset params['id'] самостоятельно в ответ на вызов beforeFilter() контроллера. Хотя я действительно не понимаю, почему это проблема.

Смежные вопросы