该属性在Symfony 4的edit User API中不存在

时间:2019-06-01 15:37:00

标签: api symfony validation doctrine-orm

我创建了User实体,这是其属性之一:

/**
 * @ORM\Column(type="string", length=50, nullable=true)
 *
 * @Assert\Length(max="50")
 * @Assert\NotNull()
 */
private $firstName;

在Api Controller中,当我想验证用户或提交编辑用户表单时,我会收到错误消息。

控制器:

public function edit(Request $request, ValidatorInterface $validator)
{
    $user = $this->getUser();
    $validator->validate($this->getUser()); # i get error here
}

错误是:

  

属性\“名字\”在类中不存在   \“代理\ __ CG __ \ App \ Entity \ User \”“

但是我有firstName,可以为此使用getter和setter。

1 个答案:

答案 0 :(得分:0)

您可以尝试这种方式。

$user = $this->getUser();
$repository = $this->getDoctrine()->getRepository(YourEntity::class);
$userEntity = $repository->find($user->getId());

$validator->validate($userEntity);