我有一个symfony的表格。现在,我计划实现验证,为此我编写了一个validation.yml文件,如下所示
Core\AppBundle\Entity\User:
properties:
name:
- Length:
min: 5
max: 255
minMessage: "Your name should be at least {{ limit }} characters"
maxMessage: "Your name cannot be more than {{ limit }} characters"现在,当我在操作中使用以下片段时,symfony将使用给定的约束进行验证
$validator = $this->get('validator');
$errors = $validator->validate($user);但是,如果我使用
if ($form->isValid()) {
}
return $response;验证未完成。
但是根据这的文章,Synfony在内部使用验证器服务,并另外将ConstraintViolationList对象转换为FieldErrors,这对我的目的非常方便。
我工作流程中的错误可能是什么?
EDIT1:
$form = $this->createForm(new RegType(), $reg); $reg是一个包含实体用户作为变量的对象。
发布于 2015-04-09 14:04:56
在data_class的默认选项中,是否将RegType设置为Core\Entity\User?这就是表单是否需要进行额外验证的方式。
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Core\AppBundle\Entity\User'
));
}发布于 2015-04-09 13:32:55
你好像错过了处理请求。
public function newAction(Request $request)
{
// build the form ...
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($post);
$em->flush();
return $this->redirect($this->generateUrl(
'admin_post_show',
array('id' => $post->getId())
));
}
// render the template
}看看辛弗尼最佳实践
https://stackoverflow.com/questions/29539912
复制相似问题