我将创建一个这样的链接:
somesite.com/management/users/index/delete/10
其中 management 是模块名称,users 是控制器,index 是动作名称,delete 是获取记录 id 的参数。要创建此链接,我正在使用这部分代码:
$delUrl = $this->url()->fromRoute('management-users', array(
'controller' => 'users',
'action' => 'index',
'delete' => $siteData['id'],
));
我的配置如下:
'router' => array(
'routes' => array(
'management-index' => array(
'type' => 'segment',
'options' => array(
'route' => '/management[/:controller][/:action][/delete/:delete][/:id]',
'constraints' => array(
'delete' => '[0-9]+' ,
'id' => '[0-9]+'
),
'defaults' => array(
'__NAMESPACE__' => 'Management\Controller',
'controller' => 'Index',
'action' => 'index'
),
),
),
),
),
结果是这样的:
somesite.com/management/users/delete/10
该函数省略了动作名称,因为它是我的默认动作,然后将删除作为动作名称,最后我得到 404 错误。如您所见,我有一个参数“id”,它不允许我从链接中省略短语“delete”。通过从 url 中省略“delete”,ZF2 将输入作为“id”而不是“delete”。我也无法更改我的默认操作。有没有办法告诉 ZF2 在 url 中输入动作名称?