2

我正在尝试验证控制器中的字段 fosuserbundle。我在不使用表单的情况下从请求中传递值(我使用的是 jquery 插件 x-editable)。到目前为止,我已经尝试过这种方式,但即使它无效或为空,它也会为我保存电子邮件:

    $userId = $request->get('pk');
    $value = $request->get('value');

    $em = $this->getDoctrine()->getManager();
    $user = $em->getRepository('AcmeUserBundle:User')->find($userId);
    if (!$user) {
        throw $this->createNotFoundException('Unable to find Products entity.');
    }
    $user->setEmail($value);

    $validator = $this->container->get('validator');
    $errors = $validator->validate($user, array('profile'));

    if (count($errors) > 0) {
        return new Response(print_r($errors, true), 400);
    }

    $this->container->get('fos_user.user_manager')->updateUser($user);       

    return new Response('', 200);

我在哪里做错了?

4

1 回答 1

4

FOSUserBundle 使用“Profile”作为验证组,而不是小写的“profile”。

看看这里这里的验证配置。

于 2013-08-07T16:38:38.857 回答