[英]PHP - Routing with Parameters in Laravel
我正在尝试使用Laravel创建RESTful API。
在我的routes.php
:
Route::get('/accounts/(:any?)', array('as'=>'account_index', 'uses'=>'accounts@index'));
我的控制器:
class Accounts_Controller extends Base_Controller {
public $restful = true;
public function get_index($id = null) {
if(!$id)
return Response::json(Account::all());
return Response::json(Account::find($id));
}
尝试任何请求accounts/##
,我都会收到404响应,但是accounts
工作正常。 当我将路线更改为非以下accounts
:
Route::get('/accts/(:any?)'
我的路由可以按预期工作,并且最重要的是,发送到accounts
请求仍然可以正常工作。 是因为我将get_index
用作函数名,以便它恢复为使用标准的http://localhost/controller/method/arguments
吗?
编辑我有控制器被自动检测到:
Route::controller(Controller::detect());
定义路由时,定义这些路由的顺序很重要。 Laravel使用正则表达式将请求的URI与这些模式进行匹配,并且使用第一个要匹配的URI而不进行进一步处理。
Route::controller('accounts')
有效地匹配accounts/(:any?)/(:any?)/(:any?)
等。如果要测试URL accounts/index/12
您将得到预期的结果结果。
Route::get('/accounts/(:any?)', array('as'=>'account_index', 'uses'=>'accounts@index'));
Route::controller( Controller::detect() );
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.