Validation synfomy 4实体表单更新验证断言

Validation synfomy 4实体表单更新验证断言,validation,types,controller,entity,assert,Validation,Types,Controller,Entity,Assert,表单显示正确,没有“password”和“passwordConfirm”字段 所以我认为验证($form->isValid())只检查提交的字段(name和mail)。但它控制用户实体的所有字段 我猜这是因为我将$User传递到createForm中 如何不测试“password”和“passworConfirm”字段 我尝试了'mapped'=>false,但它不起作用,或者我做错了 我还尝试使用参数转换器{id},但我不知道如何保护它,因为我不希望用户能够更改URL栏中的id 谢谢你的帮助

表单显示正确,没有“password”和“passwordConfirm”字段

所以我认为验证($form->isValid())只检查提交的字段(name和mail)。但它控制用户实体的所有字段

我猜这是因为我将$User传递到createForm中

如何不测试“password”和“passworConfirm”字段

我尝试了'mapped'=>false,但它不起作用,或者我做错了

我还尝试使用参数转换器{id},但我不知道如何保护它,因为我不希望用户能够更改URL栏中的id

谢谢你的帮助

实体用户

private name; 
private mail;
private password; 
private passwordConfirm;
表单用户类型

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $fromUpdate = $options["fromUpdate"];

        if (!$fromUpdate) {
            $builder->add('password', PasswordType::class)
                ->add('passwordConfirm', PasswordType::class);
        }

        $builder
            ->add('name')
            ->add('mail');

       public function configureOptions(OptionsResolver $resolver)
       {
        $resolver->setDefaults([
            'data_class'   => User::class,
            'fromUpdate' => false,
        ]);
    }
用户控制器

     /**
     * @Route("/par/updatePar", name="updatePar")
     */
    public function updatePar(Request $request, EntityManagerInterface $manager)
    {
        $user = $this->getUser();
 
        $form = $this->createForm(UserType::class, $user, ["fromUpdate" => true]);

        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {

           **PROBLEM : 
           tests the validation of the password and passwordConfirm fields when they are not submitted** 

            $manager->persist($user);
            $manager->flush();

            $this->addFlash("success", "xxx");
            return $this->redirectToRoute('xxx');
        }

        return ...
    }