如何使用Zend Framework 2通过url传递参数


How to pass parameters by url with Zend Framework 2

我在Zend Framework 2中遇到了按url传递参数的麻烦。例如:我想通过如下URL访问页面:http://example.com/student/details/aaa它是工作的,但如果我的网址是这样的:http://example.com/student/details/1它不起作用,我仍然得到404分。

我试着按照Zend Framework 2中如何使用路由传递params的说明进行操作?

但它仍然不起作用。

这是我的模块.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',
                    ),
                ),
            ),

我在控制器中使用这个$this->getEvent()->getRouteMatch()->getParam('id')

有人能帮我吗?

您对id使用了错误的路由规则,该规则说从字母表开始,然后从字母表+数字+"_-"。

 'id'     => '[a-zA-Z][a-zA-Z0-9_-]*',

相反,你需要改变规则,从字母表+数字开始,然后字母表+号码+"_-"

 'id'     => '[a-zA-Z0-9][a-zA-Z0-9_-]*',