0

我有一个用于注册和编辑用户信息的表格。此表单包含我放置的个人资料图片属性@Assert\Image

我通过我的注册表单成功创建了一个新用户,但是当我尝试编辑用户信息(使用一种PATCH方法,只是为了更新需要更新的内容)时,我遇到了“找不到文件”消息的错误。

我想这是因为存储在数据库中的路径是一个字符串,我@Assert\Image想要一个图像。

我不确定我应该如何管理这种更新。

当我正确提交后,我看到该dd()属性仍然包含保存在数据库中的路径。$userprofilePicture

这是我关于表单处理的功能:

public function myProfile(Request $request)
    {
        $user = $this->getUser();
        $form = $this->createForm(UserFormType::class, $user, ['method' => 'PATCH']);

        if ($request->isMethod('PATCH')){

            $form->submit($request->request->get($form->getName()), false);

            if ($form->isSubmitted() && $form->isValid()) {
                //...
            }

        }
        //if no request just display the page
        return $this->render('connected/myProfile.html.twig', [
            'user' => $user,
            'userProfileForm' => $form->createView()
        ]);
    }
4

1 回答 1

0

验证器将检查您的对象是否包含图像,而在您更新对象时似乎并非如此。一种解决方法是使用group 验证,为具有断言 Image 的属性定义特定组,并在方法中getGroupSequence返回组(如果您正在创建(id == null)或设置了属性)。

于 2019-11-08T22:43:26.800 回答