Reputation: 283
I'm getting into trouble with passing param by url in Zend Framework 2. For example : I want to access page by a URL like this: http://example.com/student/details/aaa it's working, but if my url like this : http://example.com/student/details/1 it's not working, And i still get a 404.
I tried to follow the instruction from how to pass params using a route in Zend Framework 2?
But it still doesn't work.
here's my module.config.php
'student' => array(
'type' => 'segment',
'options' => array(
'route' => '/student[/:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'__NAMESPACE__' => 'AppFeeder\Controller',
'controller' => 'Student',
'action' => 'index',
),
),
),
And i use this $this->getEvent()->getRouteMatch()->getParam('id')
in my controller.
Can anyone help me ?
Upvotes: 1
Views: 1324
Reputation: 2606
You are using wrong route rule for id which says start from alphabet then alphabet+number+"_-".
'id' => '[a-zA-Z][a-zA-Z0-9_-]*',
Instead you need to change the rule that says start from alphabet+number then alphabet+number+"_-"
'id' => '[a-zA-Z0-9][a-zA-Z0-9_-]*',
Upvotes: 2