UniqueEntity,两个字段无法正常工作

时间:2017-10-09 17:47:13

标签: php mysql symfony doctrine-orm

我正在使用UniqueEntity约束来确保我没有两个具有相同flowIdlistId的实体。

这是我的实体:

use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

/**
 * @UniqueEntity(fields={"flowId","listId"})
 * 
 * @ORM\Entity(repositoryClass="InvitationService\Infrastructures\Persistence\Doctrine\InvitationRepository"
 * )
 * @ORM\Table(
 *     name="invitations",
 *     uniqueConstraints={
 *          @ORM\UniqueConstraint(
 *              name="flow_list_uniqueness", 
 *              columns={"flow_id", "list_id"})
 *      }
 * )
 */
 class Invitation extends Model
 {

     /**
      * @var string
      *
      * @ORM\Column(name="flow_id", type="string", length=100, nullable=false)
      */
      protected $flowId;

     /**
      * @var string
      *
      * @ORM\Column(name="list_id", type="string", length=100, nullable=false)
      */
      protected $listId;

当我使用flowIdlistId的相同组合保留第二个实体时,会触发名称为UniqueConstraint的{​​{1}}并收到错误:

flow_list_uniqueness

显然SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'flow-abc-list-abc' for key 'flow_list_uniqueness'" 没有做任何事情,我尝试在UniqueEntity类和var_dump类中添加一些UniqueEntity以确保这些类至少是叫,但我没有得到任何输出。

我在SO和symfony的github存储库中检查了一些类似的问题,但没有任何对我有用。

我正在使用PHP 7.1,Symfony 3.3和doctrine 2.5与MySQL db。

感谢任何帮助。

0 个答案:

没有答案