一种方法是使用条件块在同一函数中处理这两种情况,如下所示
function get($id, $action=null){
if(is_null($action)){
//handle it as just $id case
}else{
//handle it as $id and $action case
}
}
如果您正在运行 restler 3 及更高版本,则必须禁用智能路由
/**
* @smart-auto-routing false
*/
function get($id, $action=null){
if(is_null($action)){
//handle it as just $id case
}else{
//handle it as $id and $action case
}
}
另一种方法是拥有多个函数,因为 index 也映射到 root,你有几个选项,你可以将你的函数命名为 get、index、getIndex
function get($id, $action){
//returns data based on action and id
}
function index($id){
//returns profile based on id
}
如果您正在使用 Restler 2 或smart routing
关闭,功能的顺序对于消除歧义很重要
如果您用完了函数名称的选项,您可以按照@fiskfisk 的建议使用@url 映射,但该路由应该只包含方法级别的路由,因为类路由始终是前置的,除非您使用以下方法将其关闭$r->addAPIClass('MyClass','');
function get($id){
//returns data based on action and id
}
/**
* @url GET :id/duels
*/
function duels($id)
{
}
高温高压