CakePHP передает аргументы в Controller :: redirect

В действиях контроллера для перенаправления я использую это:

$this->redirect(array('controller' => 'tools', 'action' => 'index')); 

или это

 $this->redirect('/tools/index'); 

И когда я передаю данные с перенаправлением, я использую это:

 $this->redirect('tools/index/?myArgument=12'); 

Но я не мог найти, как передать «myargument» посредством нотации «this-redirect-array».
Я не хочу использовать это, потому что некоторые проблемы маршрутизации:

 $this->redirect(array('controller' => 'tools', 'action' => 'index', "myArgument")); 

Мне нужно что-то вроде этого:

 $this->redirect(array('controller' => 'tools', 'action' => 'index', "?myArgument=12")); 

Related of "CakePHP передает аргументы в Controller :: redirect"

Cake действительно поддерживает аргументы запроса, используя знак вопроса, например:

 $this->redirect(array( 'controller' => 'tools', 'action' => 'index', '?' => array( 'myArgument' => 12 ) )); 

http://book.cakephp.org/2.0/en/development/routing.html#reverse-routing

Но было бы лучше, просто, как сказал:

 $this->redirect(array( 'controller' => 'tools', 'action' => 'index', 'myArgument' => 12 )); 

Это должно работать:

 $this->redirect(array('controller' => 'tools', 'action' => 'index', 'myArgument' => 12)); 

Взгляните на CakePHP Cookbook – Controller :: redirect

Доступ к параметрам запроса :

 $this->request['myArgument']; $this->request->myArgument; $this->request->params['myArgument']; 

Используя это для перенаправления:

 $this->redirect(array('controller' => 'tools', 'action' => 'index', 'myArgument' => 12)); 

И Router :: connectNamed () для router.php, чтобы сменить разделитель с ":" на "=":

 Router::connectNamed( array('myArgument' => array('action' => 'index', 'controller' => 'tools')), array('default' => false, 'greedy' => false, 'separator' => '=') 

);