表格 – Symfony 2 Doctrime 2和表单验证(唯一字段)

表格 – Symfony 2 Doctrime 2和表单验证(唯一字段),第1张

概述你好我有小问题.我在sf2中从未做过表单验证器,所以我不知道应该从哪里开始.我有一个字段’用户名’,它在数据库中是唯一的,所以我怎么试试呢? 我的代码: – >实体 /** * @var string $nick_allegro * * @ORM\Column(name="nick_allegro", type="string", length=255, unique=true, nu 你好我有小问题.我在sf2中从未做过表单验证器,所以我不知道应该从哪里开始.我有一个字段’用户名’,它在数据库中是唯一的,所以我怎么试试呢?

我的代码:

– >实体

/**  * @var string $nick_allegro  *  * @ORM\Column(name="nick_allegro",type="string",length=255,unique=true,nullable=true)  */ private $nick_allegro;

– >形成

public function buildForm(FormBuilder $builder,array $options) {     $builder         ->add('nick_allegro')     ; } public function getDefaultoptions(array $options) {     return array(         'data_class' => 'My\FrontendBundle\Entity\licence',); }

– >调节器

/**  * displays a form to create a new licence entity.  *  * @Route("/new",name="licence_new")  * @Template()  */  public function newAction()  {      $entity = new licence();      $form   = $this->createForm(new licenceType(),$entity);      return array(          'entity' => $entity,'form'   => $form->createVIEw()      );  }  /**   * Creates a new licence entity.   *   * @Route("/create",name="licence_create")   * @Method("post")   * @Template("MyFrontendBundle:licence:new.HTML.twig")   */  public function createAction()  {      $entity  = new licence();      $request = $this->getRequest();      $form    = $this->createForm(new licenceType(),$entity);      $form->bindRequest($request);      if ($form->isValID()) {          $em = $this->getDoctrine()->getEntityManager();          $em->persist($entity);          $em->flush();          return $this->redirect($this->generateUrl('licence_show',array('ID' => $entity->getID())));      }      return array(          'entity' => $entity,'form'   => $form->createVIEw()      );  }

– >视图

<form action="{{ path('licence_create') }}" method="post" {{ form_enctype(form) }}>     {{ form_Widget(form) }}     <p>         <button type="submit">Create</button>     </p> </form>
解决方法 您需要在symfony中使用 Unique Entity来验证模型中的特定字段是否唯一.

为了帮助你(如果你有一个名为nick的字段):

1 /在您的实体中

use Symfony\Component\ValIDator\Constraints as Assert;use Doctrine\ORM\MapPing as ORM;use Symfony\BrIDge\Doctrine\ValIDator\Constraints\UniqueEntity;/*** @ORM\Entity* @UniqueEntity("nick")*/class User{/** * @var string $email * * @ORM\Column(name="nick",unique=true) */private $nick;

验证将在您在实体中声明约束时直接生效.
因此,您可以检查控制器中的valIDaiton.

2 /在您的控制器中

if ( 'POST' === $request->getmethod()) {        $form->bind($request);        if ($form->isValID())        {            //do something if the form is valID        }}
总结

以上是内存溢出为你收集整理的表格 – Symfony 2 Doctrime 2和表单验证(唯一字段)全部内容,希望文章能够帮你解决表格 – Symfony 2 Doctrime 2和表单验证(唯一字段)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1081337.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存