gre*_*ory 4 php rest codeigniter codeigniter-routing codeigniter-restserver
我正在尝试为我的 API 实现以下 URL(我正在使用 Codeigniter 和 Phil Sturgeon 的REST 服务器库):
/players -> refers to index method in the players controller
/players/rookies -> refers to rookies method in the players controller
Run Code Online (Sandbox Code Playgroud)
我不希望 URL 带有尾随“索引”
/players/index
Run Code Online (Sandbox Code Playgroud)
当我像这样定义路由时,这根本没有问题:
$route['players'] = 'players/index';
Run Code Online (Sandbox Code Playgroud)
一切都按预期进行。
我的问题是我需要额外的 URL 段,如下所示:
/players/rookies/limit/10/offset/5/key/abcdef
Run Code Online (Sandbox Code Playgroud)
上面的示例有效,但以下示例无效:
/players/limit/10/offset/5/key/abcdef
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:显然我的控制器中{"status":false,"error":"Unknown method."}
没有方法。limit
我如何设置我的routes.php配置文件才能使这些URL正常工作?
任何帮助深表感谢!
//www.mysite.com/players
$route['players'] = 'players/index_get';//initial call to players index
//www.mysite.com/players/rookies
/** overrides the above **/
$route['players/(:any)'] = 'players/index_get/$1';//Changing defaults index
//www.mysite.com/players/rookies/10/4
/** overrides the above **/
$route['players/(:any)/(:num)/(:num)'] = 'players/index_get/$1/$2/$3';//Changing type,limit,offset
//All routes that are similar, like above that follow the previous, override the preceding one.
//www.mysite.com/players/create
//overrides $route['players/(:any)']
$route['players/create'] = 'players/index_post';
class Players extends REST_Controller
{
public $player_types = array();
public function __construct(){
$this->player_types = array(
'rookies', 'seniors'
);//manual assign or pull from db
}
/**
* Index
* $_GET
**/
public function index_get($type='rookies',$offset=0, $limit=0)//some defaults to show on initial call
{
// www.mysite.com/players/rookies
// $route['players/(:any)'] = 'players/index_get/$1';
// First uri segment, check to see if its a valid player 'type'
if(!in_array(strtolower($type), $this->player_types)){
//redirect ?
return;
}
}
/**
* Index
* $_POST
**/
public function index_post()
{
// Create a new player
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15104 次 |
| 最近记录: |