json - 无法将整个用户发送到 API json 响应,只能发送 id 和电子邮件
问题描述
我正在尝试将我的用户实体发送回前端,但只发送 id 和电子邮件,而不发送其他属性。其他属性正在使用@Groups,例如 id 和电子邮件。如您所见,我无法发送回复 ID 和电子邮件。所以我不明白问题出在哪里。我有use Symfony\Component\Serializer\Annotation\Groups;
我的实体用户:
/**
* @ORM\Table(name="`user`")
* @ORM\Entity(repositoryClass=UserRepository::class)
*/
class User implements UserInterface, \Serializable
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
* @Groups("apiv0")
*/
private $id;
/**
* @ORM\Column(type="json")
* @Groups("apiv0")
*/
private $roles = [];
/**
* @ORM\Column(type="string", length=180, unique=true)
* @Groups("apiv0")
*/
private $email;
/**
* @var string The hashed password
* @ORM\Column(type="string")
* @Groups("apiv0")
*/
private $password;
/**
* @ORM\OneToMany(targetEntity=Bloodsugar::class, mappedBy="user")
* @Groups("apiv0")
*/
private $bloodsugars;
/**
* @ORM\Column(type="string", length=50)
* @Groups("apiv0")
*/
private $lastname;
/**
* @ORM\Column(type="string", length=50)
* @Groups("apiv0")
*/
private $firstname;
/**
* @ORM\Column(type="float")
* @Groups("apiv0")
*/
private $target_min;
/**
* @ORM\Column(type="float")
* @Groups("apiv0")
*/
private $target_max;
/**
* @ORM\Column(type="string", length=50, nullable=true)
* @Groups("apiv0")
*/
private $doctor_name;
/**
* @ORM\Column(type="string", length=20)
* @Groups("apiv0")
*/
private $diabetes_type;
/**
* @ORM\Column(type="string", length=50, nullable=true)
* @Groups("apiv0")
*/
private $doctor_email;
/**
* @ORM\Column(type="datetime")
* @Groups("apiv0")
*/
private $created_at;
/**
* @ORM\Column(type="string", length=255)
* @Groups("apiv0")
*/
private $username;
我的控制器:
$userCreated = $repository->find($user->getId());
dump($user);
dump($userCreated);
$response = $this->json($userCreated, 200, [], ['groups' => 'apiv0']);
dd($response);
return $response
我的转储:
解决方案
您应该在组定义中使用方括号,所以这样做:
/**
* @ORM\Column(type="string", length=180, unique=true)
* @Groups({"apiv0"})
*/
private $email;
而不是这个:
/**
* @ORM\Column(type="string", length=180, unique=true)
* @Groups("apiv0")
*/
private $email;
推荐阅读
- python - 网络在训练期间不会改变权重,pytorch
- macros - Julia中基准和时间宏之间的区别
- jquery - 将arraylist对象servlet传递给jquery ajax方法
- android - QVideoFrame::map() 崩溃
- ios - iOS - 使用 AFNetworking 库将数组错误作为参数传递
- python - python:将时间从“2009-11-10T23:00:00Z”更改为 int
- javascript - onClick 不适用于选项字段
- javascript - 用数字对数组进行排序
- python - 如何将我的 python 脚本的输出保存为 CSV 文件?
- mainframe - RACF 数据集访问行为