使用dingo / api(https://github.com/dingo/api)包时如何使用控制器而不是路由?
文档(https://github.com/dingo/api/wiki)仅使用路线。
答案 0 :(得分:3)
Dingo只是Laravel路由器的扩展,因此您可以像使用任何其他Laravel项目一样使用控制器。
所以这个:
Route::api(['version' => 'v1', 'prefix' => 'api'], function()
{
Route::get('posts', function()
{
return Post::all();
});
});
会变成:
Route::api(['version' => 'v1', 'prefix' => 'api'], function()
{
Route::get('posts', 'PostsController@index');
});
答案 1 :(得分:0)
您的意思是将控制器连接到特定的野狗路线吗?像这样:
$api = app('Dingo\Api\Routing\Router');
然后是
$api->version('v1', function($api){
$api->get('posts', 'PostsController@index');
});
但不知何故Dingo无法找到控制器的目录,所以我所做的是从App\
目录开始,如下所示:App\Http\Controllers\PostsController@index
。
所以正确的语法是
$api->get('posts', 'App\Http\Controllers\PostsController@index');