1

我想根据请求方法(GET、POST、PATCH、DELETE、PUT)路由请求

我如何在野狗中做到这一点?

我已经尝试过了,但它不起作用。

$api = app('Dingo\Api\Routing\Router');
$api->get('users', 'UserController@index', ['only' => [ 'index']]);
4

1 回答 1

2

路由的工作方式与在 Laravel/Lumen 中的工作方式完全相同(取决于你在哪里使用这个 pacakge)。

您的代码部分正确。使用$api->get时只需提供它响应的 URI 和应采取的操作。第三个参数不是必需的。

所以它应该是这样的:

$api->get('users', 'UserController@index');

现在,当您浏览/api/users它时,它会查找UserController并使用该index方法。值得注意的是,您可能需要在控制器中包含完整的命名空间,例如,App\Http\Controllers对于全新的 Laravel 安装。

你也可以使用其他 HTTP 动词,就像在 Laravel/Lumen 中一样。

$api->post('users', 'UserController@create');

最后,您可以利用资源控制器,这就是您的示例中的第三个参数。

$api->resource('users', 'UserController', ['only' => ['index', 'create']]);

注意:所有这些都必须包含在 API 版本组中,例如,$api->version('v1', function ($api) { });

于 2015-08-19T05:20:04.570 回答