Laravel dingo / api带控制器而不是路线

时间:2014-11-25 18:25:15

标签: api laravel

使用dingo / api(https://github.com/dingo/api)包时如何使用控制器而不是路由?

文档(https://github.com/dingo/api/wiki)仅使用路线。

2 个答案:

答案 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');