How to pass parameters by url with Zend Framework 2

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

Answers (1)

kuldeep.kamboj
kuldeep.kamboj

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

Related Questions