子供の中ではオプションではないオプションの制約に問題があります。次のように私のルーティング構造は次のとおりです。子ルートのZF2オプションのルート制約
'profile' => [
'type' => 'segment',
'options' => [
'route' => '/profile[/:id]',
'constraints' => ['id' => '[0-9]*'],
'defaults' => [
'controller' => 'User\Controller\User',
'action' => 'profile'
]
],
'may_terminate' => true,
'child_routes' => [
'sessions' => [
'type' => 'literal',
'options' => [
'route' => '/sessions',
'defaults' => ['action' => 'sessions']
]
]
]
]
次のルート私を与える必要があります私の心にどの:
/profile
- 作品/profile/123
- 動作しません -/profile/sessions
作品/profile/123/sessions
- 作品
私はURLビューヘルパーでルート3を使用すると、私は次のエラーを取得:
$this->url('profile/sessions');
Zend\Mvc\Router\Exception\InvalidArgumentException
: Missing parameter "id"
を私はもともと私の制約として[0-9]+
があったが、それはオプションで作る(*
)はしていないようです助けてくれました。前にこの事件を経験した人はいますか?
私は各ルートを明確に定義するのが好きなので、私はこのルートをとった(私は魔法の '/:controller [/:action]'スタイルルートは嫌いだ)。 – Ross