gpt4 book ai didi

validation - symfony 验证表单不调用

转载 作者:行者123 更新时间:2023-12-01 02:24:31 24 4
gpt4 key购买 nike

我正在使用 symfony2 制作一个网站,但我在表单验证方面遇到了一些麻烦。我的表单上的方法“isValid()”似乎从未被调用过:

这是我的表单创建:

公共(public)函数 createAction(请求 $request)
{
$pro = 新职业();
$创建=假;

    $form = $this->createFormBuilder($pro)
->add("raison_sociale",null,array("label"=>"Raison sociale * : "))
->add("siret",null,array("label"=>"N° SIREN * : "))
->add("nom",null,array("label"=>"Nom *: "))
->add("prenom",null,array(
"label"=>"Prénom *: "
))
->add("adresse",null,array(
"required"=>false,
"label"=>"Adresse : "
))
->add("code_postal","text",array(
"required"=>false,
"label"=> "Code Postal : "
))
->add("ville",null,array(
"required"=>false,
"label"=> "Ville : "
))
->add("tel",null,array("label"=>"Téléphone * : ","required"=>true))
->add("mobile",null,array(
"required"=>false,
"label"=>"Mobile : "
))
->add("fax",null,array(
"required"=>false,
"label"=>"Fax : "
))
->add("email","email",array("label"=>"Email * : "))
->add("username",null,array("label"=>"Login * : "))
->add("password","password",array("label"=>"Mot de passe * : "))
->add("newsletter",null,array("required"=>false,"label"=>"Je souhaite m'inscrire à la newsletter"))
->add("accept","checkbox",array("label"=>" "))
->getForm()
;

if ($request->isMethod("POST"))
{
$form->bind($request);
if ($form->isValid())
{
$em=$this->getDoctrine()->getEntityManager();
$pro=$form->getData();
$encoder = $this->get('security.encoder_factory')->getEncoder($pro);
$pro->setPassword($encoder->encodePassword($pro->getPassword(),$pro->getSalt()));
$em->persist($pro);
$em->flush();
$created=true;
$this->get("session")->getFlashBag()->add("success", "Votre compte a bien été créé. Vous avez reçu un mail confirmant votre inscritpion.");
}
}

return $this->render('OverscanProfessionnelBundle:Front:create.html.twig',array('form'=>$form->createView(),'created'=>$created));
}

这是我的 validatio.yml :
webapp\ProfessionnelBundle\Entity\Professionnel:
constraints:
Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity:
fields: email
message: "L'email est déjà pris"

Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity:
fields: username
message: "Ce login est déjà pris"
properties:
raison_sociale:
- Valid:
siret:
- Length:
min : 9
max : 9
minMessage: "Le SIREN doit contenir 9 caractères"
maxMessage: "Le SIREN doit contenir 9 caractères"
- Regex:
pattern: "/\d/"
match: true
message: "Le SIREN ne doit pas contenir de lettre"
tel:
- Length:
min : 10
max : 10
minMessage: "Le numéro de téléphone doit contenir 10 chiffres"
maxMessage: "Le numéro de téléphone doit contenir 10 chiffres"

所以当我发布我的表单时,不会调用验证,但会调用约束!
有人能帮助我吗 ?

最佳答案

看看你的“app/../config.yml”
你应该看到这样的东西:

framework:
...
validation: { enable_annotations: true }

将其设置为:
framework:
...
validation: { enabled: true, enable_annotations: true }

然后,您的 validation.yml 应该被加载!

关于validation - symfony 验证表单不调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17698440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com