在添加@UniqueEntity(“description”)后的Synfony 2中,它需要重复的值来进行描述

问题描述 投票:-2回答:2
//Events.php
<?php

namespace erp\GenerateBundle\Entity;


use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

/**
 * Events
 * @ORM\Entity
 * @UniqueEntity(fields="description", message="Already Exists")
 */
class Events
{
    /**
     * @var string
     * @Column(type = "string", unique = true)
     * @Assert/Description()
     */
    private $description;

    /**
     * @var \DateTime
     */
    private $eventdate;

    /**
     * @var integer
     */
    private $duration;

    /**
     * @var integer
     */
    private $createdby;

    /**
     * @var \DateTime
     */
    private $added;

    /**
     * @var \DateTime
     */
    private $updated;

    /**
     * @var integer
     */
    private $id;

    /**
     * @var \erp\GenerateBundle\Entity\User
     */
    private $userid;

    /**
     * @var \erp\GenerateBundle\Entity\EventType
     */
    private $eventtype;


    /**
     * Set description
     *
     * @param string $description
     * @return Events
     */
    public function setDescription($description)
    {
        $this->description = $description;

        return $this;
    }

    /**
     * Get description
     *
     * @return string 
     */
    public function getDescription()
    {
        return $this->description;
    }

    /**
     * Set eventdate
     *
     * @param \DateTime $eventdate
     * @return Events
     */
    public function setEventdate($eventdate)
    {
        $this->eventdate = $eventdate;

        return $this;
    }

    /**
     * Get eventdate
     *
     * @return \DateTime 
     */
    public function getEventdate()
    {
        return $this->eventdate;
    }

    /**
     * Set duration
     *
     * @param integer $duration
     * @return Events
     */
    public function setDuration($duration)
    {
        $this->duration = $duration;

        return $this;
    }

    /**
     * Get duration
     *
     * @return integer 
     */
    public function getDuration()
    {
        return $this->duration;
    }

    /**
     * Set createdby
     *
     * @param integer $createdby
     * @return Events
     */
    public function setCreatedby($createdby)
    {
        $this->createdby = $createdby;

        return $this;
    }

    /**
     * Get createdby
     *
     * @return integer 
     */
    public function getCreatedby()
    {
        return $this->createdby;
    }

    /**
     * Set added
     *
     * @param \DateTime $added
     * @return Events
     */
    public function setAdded($added)
    {
        $this->added = $added;

        return $this;
    }

    /**
     * Get added
     *
     * @return \DateTime 
     */
    public function getAdded()
    {
        return $this->added;
    }

    /**
     * Set updated
     *
     * @param \DateTime $updated
     * @return Events
     */
    public function setUpdated($updated)
    {
        $this->updated = $updated;

        return $this;
    }

    /**
     * Get updated
     *
     * @return \DateTime 
     */
    public function getUpdated()
    {
        return $this->updated;
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set userid
     *
     * @param \erp\GenerateBundle\Entity\User $userid
     * @return Events
     */
    public function setUserid(\erp\GenerateBundle\Entity\User $userid = null)
    {
        $this->userid = $userid;

        return $this;
    }

    /**
     * Get userid
     *
     * @return \erp\GenerateBundle\Entity\User 
     */
    public function getUserid()
    {
        return $this->userid;
    }

    /**
     * Set eventtype
     *
     * @param \erp\GenerateBundle\Entity\EventType $eventtype
     * @return Events
     */
    public function setEventtype(\erp\GenerateBundle\Entity\EventType $eventtype = null)
    {
        $this->eventtype = $eventtype;

        return $this;
    }

    /**
     * Get eventtype
     *
     * @return \erp\GenerateBundle\Entity\EventType 
     */
    public function getEventtype()
    {
        return $this->eventtype;
    }
}
symfony
2个回答
0
投票

检查Config.yml

framework:validation:{enabled:true,enable_annotations:true}

在Controller中检查isValid()如果不存在则添加。提交表格前的isValid()。


0
投票

我几乎无法破译你的问题。有错误消息吗?持久存在数据库或提交表单的问题在哪里?

但我发现你发布的代码中存在一些问题。

  1. 注释@Assert/Description()不存在。
  2. 在这个例子中你缺少use Doctrine\ORM\Mapping as ORM;
  3. 如果使用ORM别名而不是@ORM\Column(type = "string", unique = true),则应使用@Column
© www.soinside.com 2019 - 2024. All rights reserved.