我通常通过以下方式在manifest.php中为模块创建路由:
'pay_general' => [
'route' => 'pgateway/:controller/:action/*',
'defaults' => [
'module' => 'pgateway',
'controller' => 'pay',
'action' => 'index',
],
'reqs' => [
'controller' => '\D+',
'action' => '\D+',
],
],
这似乎很简单。但是,我对此有一些疑问。首先,reqs
部分的作用是什么?其次,reqs部分中\D+
的含义是什么?
除此之外,我还在SocialEngine模块中看到了不同的路由,例如,使用module/:action
格式的路由如下:
'music_general' => array(
'route' => 'music/:action/*',
'defaults' => array(
'module' => 'music',
'controller' => 'index',
'action' => 'browse',
),
'reqs' => array(
'action' => '(index|browse|manage|create)',
),
),
在这里,您会看到路线形式有所不同。只需module/action
!好的!但是"action"=>"(index|browse|manage|create)"
是什么意思?此路由是否接受多个动作,即索引,浏览,管理,创建,但默认为浏览?
这是否意味着所有动作都将遵循相同的路线结构?
我正在寻找一个全面的答案,详细说明SocialEngine路由的工作方式。