REST 路由
问题中的示例看起来类似于REST routing,这是一个内置功能,可以映射:
GET /recipes/123 RecipesController::view(123)
要启用休息路由,只需使用Router::mapResources('controllername');
个别路线
如果您只想为问题中的一个案例编写路线,则有必要使用星形路线:
Router::connect('/messages/*',
array(
'controller' => 'messages',
'action' => 'messages'
)
);
用法:
echo Router::url(array(
'controller' => 'messages',
'action' => 'messages',
823214
));
// /messages/823214
这有一些缺点,因为这种路由无法验证之后的内容/messages/
。为了避免这种情况,需要使用路由参数。
Router::connect('/messages/:id',
array(
'controller' => 'messages',
'action' => 'messages'
),
array(
'id' => '\d+',
)
);
用法:
echo Router::url(array(
'controller' => 'messages',
'action' => 'messages',
'id' => 823214 // <- different usage
));
// /messages/823214