我想根据请求方法(GET、POST、PATCH、DELETE、PUT)路由请求
我如何在野狗中做到这一点?
我已经尝试过了,但它不起作用。
$api = app('Dingo\Api\Routing\Router');
$api->get('users', 'UserController@index', ['only' => [ 'index']]);
我想根据请求方法(GET、POST、PATCH、DELETE、PUT)路由请求
我如何在野狗中做到这一点?
我已经尝试过了,但它不起作用。
$api = app('Dingo\Api\Routing\Router');
$api->get('users', 'UserController@index', ['only' => [ 'index']]);
路由的工作方式与在 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) { });