我的代码:
– >实体
/** * @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和表单验证(唯一字段)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)