我在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_-]*',