컨트롤러에서 fosuserbundle 필드의 유효성을 검사하려고합니다. 양식을 사용하지 않고 요청의 값을 전달하고 있습니다 (jquery 플러그인을 x- 편집 가능으로 사용하고 있습니다). 지금까지이 방법을 시도했지만 올바르지 않거나 비어있는 경우에도 이메일을 저장합니다.FOSUserBundle 컨트롤러의 전자 메일 유효성 검사
$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);
어디에서 잘못 했습니까?
사용자 엔티티의 프로필 유효성 검사 그룹에 이메일 제약이 포함되어 있습니까? 어쩌면 복사/붙여 넣기로 실수를 했습니까? ... 제품 실체를 찾을 수 없습니까? :) – nifr
전자 메일 필드가 fosuser 사용자 엔터티의 일부이기 때문에 실제로 유효성 검사기 fosuserbundle을 사용하고 있습니다. 그룹 프로필에는 전자 메일의 제약 조건이 포함되어 있습니다. :) – Lughino