12

コントローラに次のリダイレクトスクリプトがあります(Zend Framework 2)

return $this->redirect()->toRoute('default', array(
                        'controller' => 'admin',
                        'action' =>  'index'
));

現在にリダイレクトしていますlocalhost/zf2/public/admin/index

追加のパラメータを使用してリダイレクトするにはどうすればよいですか?

好き:

localhost/zf2/public/admin/index/update/1

またlocalhost/zf2/public/admin/index/page/2

私はこれを試しました:

return $this->redirect()->toRoute('default', array(
                        'controller' => 'admin',
                        'action' =>  'index'
                            'param' => 'updated/1'
                        ));

しかし、にリダイレクトされますlocalhost/ttacounting/public/admin/index/updated%2F1

4

6 に答える 6

19

これは実例です。ルートスクリプト

$this->redirect()->toRoute('myaccount', array(
    'controller' => 'admin',
    'action' =>  'index',
    'param1' =>'updated',
    'param2'=>'1'
));

次に、module.config.phpでパラメータを設定します

'myaccount' => array(
    'type' => 'Segment',
    'options' => array(
    'route'    => '/myaccount[/:action][/:param1][/:param2]',
    'defaults' => array(
            'controller' => 'Main\Controller\MyAccount',
            'action'     => 'index',
        ),
    ),
),

これにより、MyAccountController、param1='updated'およびparam2='1'のindexActionが表示されます。ただし、この例の場合、アクションはパラメーター名「update」およびパラメーター値「1」で更新する必要があります。

于 2013-10-06T01:30:26.697 に答える
7

これは私のために働きます。

ルート:

'user_view' => array(
    'type'    => 'Segment',
    'options' => array(
        'route' => '/user/view[/:user_id]',
        'defaults' => array(
            'controller' => 'user',
            'action'     => 'viewUser',
        ),
    ),
), // End of user_view route

そして、コントローラーからのリダイレクト:

return $this->redirect()->toRoute('user_view', array('user_id'=>$user_id));

リダイレクトステートメントの配列キーがルートセグメントに対応していることに注意してください。[/:user_id] ='user_id' => $ user_id

于 2012-05-19T12:57:24.243 に答える
3

もう1つの方法は、ルートを更新する代わりに、3番目のパラメーター(ZF3でテスト済み)として渡すことです。

$this->redirect()->toRoute('dashboard', [], ['query' => ['welcome' => 1]]);
于 2016-11-16T09:45:14.333 に答える
1

このステートメントは、localhost / Leads / edit/112345にリダイレクトします。

return $this->redirect()->toRoute('leads', array(
                'action' => 'edit',
                'id' => 112345
            ));

idは、editActionで期待するパラメーターです。

それが役に立てば幸い。

于 2012-11-14T16:44:51.220 に答える
0

以前のルートの代わりにこのルートを試してください

return $this->redirect()->toRoute('default', [
    'controller' => 'admin',
    'action' =>  'index'
    'updated' => '1'
]);
于 2013-05-18T15:43:30.787 に答える
0

私は上記の解決策からいくつかを試しましたが、どれも私のために働いていませんでした。私は以下を持ってきました。

//Return to specific product pricing 
return $this->redirect()->toRoute('showpricing', array('id' => $form_values['id']));


  /* show pricing */
          'showpricing' => array(
              'type' => 'Zend\Mvc\Router\Http\Segment',
              'options' => array(
                  'route'   => '/product/showpricing[?id=:id]',
                  'defaults' => array(
                      'controller' => 'Product\Controller\Product',
                      'action'     => 'showpricing',
                  )
              )
          ),

これが誰かを助けることを願っています。

于 2014-10-31T04:34:27.790 に答える