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

时间:2015-03-30 03:40:12

标签: php zend-framework2

我在Zend Framework 2中通过url传递param时遇到了麻烦。例如:我想通过这样的URL访问页面: http://example.com/student/details/aaa它正在运作,但如果我的网址是这样的: http://example.com/student/details/1它不能正常工作,我仍然可以获得404。

我尝试按照how to pass params using a route in Zend Framework 2?

的说明操作

但它仍然无效。

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

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

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

您使用错误的路由规则来表示从字母开始,然后是字母+数字+" _-"。

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

相反,您需要更改从字母+数字开始然后字母+数字+" _-"

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