【发布时间】:2016-11-23 05:07:16
【问题描述】:
这是我的第一个 Dingo Api 实现。这是我的
RoleTransformer类
namespace App\Api\V1\Transformers;
use League\Fractal\TransformerAbstract;
use App\Role;
class RoleTransformer extends TransformerAbstract
{
public function transform(Role $role)
{
return [
'role_id' => (int)$role->id,
'name' => $role->name
];
}
}
这是RoleController
namespace App\Http\Controllers;
use Dingo\Api\Routing\Helpers;
use Illuminate\Http\Request;
use Dingo\Api\Http\Response;
use App\Role;
use App\Http\Requests;
use App\Api\V1\Transformers\RoleTransformer;
class RoleController extends Controller
{
use Helpers;
public function index(){
$roles = Role::all();
return $this->response->collection($roles, new RoleTransformer())
->setStatusCode(200);
}
}
虽然我应该只得到role_id和name
[
{
"id": 1,
"name": "admin",
"display_name": "Admin",
"description": "Administrator",
"created_at": "2016-07-18 08:11:44",
"updated_at": "2016-07-18 08:11:44"
},
{
"id": 2,
"name": "director",
"display_name": "Director",
"description": "Country Manager",
"created_at": "2016-07-18 08:11:44",
"updated_at": "2016-07-18 08:11:44"
},
{
"id": 3,
"name": "manager",
"display_name": "Manager",
"description": "Team Manager",
"created_at": "2016-07-18 08:11:44",
"updated_at": "2016-07-18 08:11:44"
}
]
不知道我做错了什么。
使用 Laravel 5.2 和 Dingo 1.0.x@dev。
【问题讨论】:
-
找到了解决方案。在
config/api.php中,url 前缀设置为'prefix' => env('API_PREFIX', 'api');,但在我的路由中,我在没有api前缀的情况下进行测试。一旦我在路由中设置api,它的工作就像一个魅力。
标签: laravel api laravel-5 dingo-api