2016-12-07 2 views
0

ZF3では、ルートからデフォルトパラメータを取得します。私は、コントローラに、このようにパラメータを取得しています:私は私の$params変数でaddを取得しています)1ではZF3のデフォルトルートパラメータを取得していません

1: somedomain/admin/color/add 
2: somedomain/admin/color 

$params = $this->params()->fromRoute('crud'); 

私のURLは次のようになります。
)2で、私はnullを取得していますが、私はこの場合view

私はこれは悪いルータの設定に問題だと思うで(デフォルトを期待しています。あなたのルート定義で

'admin' => [ 
      'type' => Segment::class, 
      'options' => [ 
       'route' => '/admin/:action', 
       'defaults' => [ 
        'controller' => Controller\AdminController::class, 
        'action' => 'index', 
       ], 
      ], 
      'may_terminate' => true, 
      'child_routes' => [ 
       'color' => [ 
        'type' => Segment::class, 
        'options' => [ 
         'route' => '/:crud', 
         'constraints' => [ 
          'crud' => 'add|edit|delete|view', 
         ], 
         'defaults' => [ 
          'controller' => Controller\AdminController::class, 
          'crud' => 'view', 
         ], 
        ], 
       ], 
      ], 
      ], 

答えて

2

、あなたのcrudパラメータがoptionnalあるルータは述べていませんでした。したがって、somedomain/admin/colorに電話すると、選択されているルートは/admin/:actionです。

'admin' => [ 
    'type' => Segment::class, 
    'options' => [ 
     'route' => '/admin/:action[/:crud]', 
     'defaults' => [ 
      'controller' => Controller\AdminController::class, 
      'action' => 'index', 
      'crud' => 'view', 
     ], 
     'constraints' => [ 
      'crud' => 'add|edit|delete|view', 
     ], 
    ], 
], 
+0

私はすでにこれを行っている:

は(あなたが同じアクションを使用すると仮定した場合)ブラケット表記を使用して、オプションのパラメータを指定します。しかし、ありがとう。 –

関連する問題