2017-10-20 18 views
1

私は my-website.com/app/##する必要があります私は生成しようとしていますurl view helper in Zend Framework 2Zend Frameworkの2取得ルートからURL

URLを使ってURLを生成しているやろうとしています( 「OWNERID」に等しい##です)

私はこのようなビューヘルパーを使用して、これを生成したときに何が起こる:

$this->url('mymodule', array('action'=>'show', 'ownerID'=>'28')); 

は、それが唯一の「my-website.com/app」を生成しているが、私は、ルーティング設定に基づいて "my-website.com/app/28"を期待しています。ここで

がリダイレクト>の$ this - を使用した場合、同じ現象が発生し、私のmodule.config.phpファイル

'router' => array(
'routes' => array(
    'mymodule' => array(
     'type' => 'segment', 
     'options' => array(
      'route' => '/app', 
      'defaults' => array(
       'controller' => 'MyModule\Controller\MyModule', 
       'action'  => 'show', 
      ), 
     ), 
     // Defines that "/app" can be matched on its own without a child route being matched 
     'may_terminate' => true, 
     'child_routes' => array(
      'archive' => array(
       'type' => 'segment', 
       'options' => array(
        'route' => '/:action[/:ownerID[/:clientID]]', 
        'defaults' => array(
        ), 
        'constraints' => array(
         'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
         'ownerID'  => '[0-9]+',        
         'clientID'  => '[0-9]+', 
        ) 
       ), 
      ), 
      'single' => array(
       'type' => 'segment', 
       'options' => array(
        'route' => '/:ownerID[/:clientID]', 
        'defaults' => array(
         'action'  => 'show', 
        ), 
        'constraints' => array(
         'ownerID'  => '[0-9]+', 
         'clientID'  => '[0-9]+', 
        ) 
       ), 
      ), 
     ) 
    ), 
) 
), 

からのルート情報である() - > toRoute。

手動で入力すると、すべてのルートが期待どおりに機能しますが、それは私を困惑させるURLの生成に過ぎません。

答えて

0

質問に直接答えるには、トップレベルのルート名( "mymodule")をURLヘルパーに渡すだけなので、期待通りのことはしません。 ownerIDは、子ルートの一部です。あなたが実際に欲しい

は次のとおりです。

$this->url('mymodule/archive', array('action'=>'show', 'ownerID'=>'28')); 

(または可能性mymodule/single、あなたが望む出力に応じて)。

関連する問題