问题描述
我试图在文档中使用共享对象,但似乎无法正常工作。
基于nelmio衰减,我执行了以下操作:
在我的Serailizer上:
/**
* @OA\Schema(
* @OA\Property(property="id",type="string",example="00000000-0000-0000-0000-000000000000"),* @OA\Property(property="email",example="admin@example.com"),* @OA\Property(property="status",example="active"),* @OA\Property(property="roles",type="array",items=@OA\Property(type="string"),example={"ROLE_USER","ROLE_ADMIN"}),* )
*/
class AdminUserTransformer extends TransformerAbstract
{
public function transform(AdminUser $admin)
{
return [
'id' => $admin->getId(),'email' => $admin->getEmail(),'status' => $admin->getStatus(),'roles' => $admin->getRoles(),];
}
}
然后进入控制器:
/**
* @Route("/admin-user/{id}",methods={"GET"})
*
* @OA\Response(response="200",description="Success",@Model(type=AdminUserTransformer::class))
*
* @OA\Tag(name="Admin users")
*/
public function read($id)
{
$admin = $this->queryBus->dispatch(new GetAdminUser($id));
return $this->fractal->create($admin,AdminUserTransformer::class);
}
但是我没有得到我的模型,而是得到了没有道理的错误:
Property "Resources that can be included if requested." is an array,but its items type isn't specified. You can specify that by using the type `string[]` for instance or `@OA\Property(type="array",@OA\Items(type="string"))`
直接插入文档,无需参考即可正常工作:
/**
* @Route("/{id}",* @OA\JsonContent(
* @OA\Property(property="id",* @OA\Property(property="email",* @OA\Property(property="status",* @OA\Property(property="roles",* )
* )
*
* @OA\Tag(name="Admin users")
*/
public function read($id)
{
$admin = $this->queryBus->dispatch(new GetAdminUser($id));
return $this->fractal->create($admin,AdminUserTransformer::class);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)