4

リダイレクトを行うコントローラーアクションでは、これを使用します:

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

またはこれ

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

そして、リダイレクトでデータを渡すときは、これを使用します:

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

しかし、「this-redirect-array」表記で「myargument」を渡す方法が見つかりませんでした。
いくつかのルーティングの問題があるため、これを使用したくありません:

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

私はこのようなものが必要です:

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

3 に答える 3

17

Cakeは確かに、次のように疑問符を使用したクエリ引数をサポートしています。

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

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

しかし、desが言ったように、ただやるほうがよいでしょう:

$this->redirect(array(
    'controller' => 'tools', 'action' => 'index', 'myArgument' => 12
));
于 2012-06-25T15:22:21.050 に答える
3

これは機能するはずです:

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

CakePHPクックブックを見てください-Controller::redirect

リクエストパラメータへのアクセス

$this->request['myArgument'];
$this->request->myArgument;
$this->request->params['myArgument'];
于 2012-06-24T11:48:25.037 に答える
0

これを使用してリダイレクトします。

$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' => '=')

);

于 2015-01-20T03:05:56.157 に答える