I had a problem with an optional restriction in the route, which is not optional in it for children. My routing structure is as follows:
'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'] ] ] ] ]
Which, in my opinion, should give me the following routes:
/profile - works/profile/123 - works/profile/sessions - does not work/profile/123/sessions - works
When I use route 3 in the URL view helper, I get the following error:
$this->url('profile/sessions');
Zend\Mvc\Router\Exception\InvalidArgumentException : Missing id parameter
I initially had [0-9]+ as my restriction, but making it optional ( * ) did not seem to help. Has anyone experienced this thing before?
source share