我正在尝试在 cakephp 中配置我的自定义路由,以便 url
/objects/id/action => ObjectsController.action() with params['id']=id
(这样我就不必拥有像 /objects/action/id 这样的 url,这在逻辑上对我来说比 objects/id/action 更有意义)。
我仍然希望 /objects/action 触发 ObjectsController.action() (例如,用于添加、索引、搜索)。
我的路线配置如下所示:
Router::connect('/:controller/:id',
array('action'=>'view'),
array(
':id' => '^[0-9]+$'
)
);
Router::connect('/:controller/:id/:action/*',
array('action'=>'view'),
array(
':id' => '^[0-9]+$',
':action' => '[A-Za-z0-9_\-]*'
)
);
这适用于(例如):
- /对象/54
- /objects/54/编辑
- /对象/添加
但不与
- /对象/索引/页面:2
为此,它给了我一个错误,我需要在 ObjectsController 中定义操作“page:2”...当然它应该可以工作,因为 :id 应该只匹配数字,不是吗?