繁体   English   中英

PHP-Laravel中带参数的路由

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM