Mysql 如何在Symfony2中允许重复输入SQLSTATE[23000]?
例如,我有产品[Banana]和产品[orange],我希望这两种产品在数据库中使用相同的图片。但当我尝试添加与第一个产品图片相同的第二个产品时,我出现了以下错误: SQLSTATE[23000]:完整性约束冲突:1062重复项 “1”用于键“UNIQ_5A8A6C8D3DA5256D” 我的媒体实体:Mysql 如何在Symfony2中允许重复输入SQLSTATE[23000]?,mysql,sql,symfony,doctrine-orm,Mysql,Sql,Symfony,Doctrine Orm,例如,我有产品[Banana]和产品[orange],我希望这两种产品在数据库中使用相同的图片。但当我尝试添加与第一个产品图片相同的第二个产品时,我出现了以下错误: SQLSTATE[23000]:完整性约束冲突:1062重复项 “1”用于键“UNIQ_5A8A6C8D3DA5256D” 我的媒体实体: <?php namespace FLY\BookingsBundle\Entity; use Application\Sonata\UserBundle\Entity\User; us
<?php
namespace FLY\BookingsBundle\Entity;
use Application\Sonata\UserBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
/**
* Media
*
* @ORM\Table("media")
* @ORM\Entity(repositoryClass="FLY\BookingsBundle\Entity\MediaRepository")
*/
class Media
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="path", type="string", length=255)
*/
private $path;
/**
* @var string
*
* @ORM\Column(name="alt", type="string", length=125)
*/
private $alt;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set path
*
* @param string $path
* @return Media
*/
public function setPath($path)
{
$this->path = $path;
return $this;
}
/**
* Get path
*
* @return string
*/
public function getPath()
{
return $this->path;
}
/**
* Set alt
*
* @param string $alt
* @return Media
*/
public function setAlt($alt)
{
$this->alt = $alt;
return $this;
}
/**
* Get alt
*
* @return string
*/
public function getAlt()
{
return $this->alt;
}
}
就像在评论中所说的那样,一对一
关联涉及到不能将两个帖子
与相同的媒体
关联
要允许此操作,请将您的关联更改为:
/**
* @ORM\OneToOne(targetEntity="FLY\BookingsBundle\Entity\Media", cascade={"persist","remove"})
* @ORM\JoinColumn(nullable=true)
*/
private $image;
致:
就像在评论中所说的那样,一对一
关联涉及到不能有两个帖子
与相同的媒体
关联
要允许此操作,请将您的关联更改为:
/**
* @ORM\OneToOne(targetEntity="FLY\BookingsBundle\Entity\Media", cascade={"persist","remove"})
* @ORM\JoinColumn(nullable=true)
*/
private $image;
致:
您应该发布实体,而不是发布sql。这是我们可以帮助你的方式。编辑:另外,您在post表上获得了添加唯一键'UNIQ_5A8A6C8D3DA5256D'('image_id')
,这就是您获得此错误的原因您在image
属性上使用了OneToOne
-关联(一篇文章恰好有一个关联的图像)。将其更改为ManyToOne
(许多帖子可以具有相同的图像)。请参阅:您应该发布实体,而不是发布sql。这是我们可以帮助你的方式。编辑:另外,您在post表上获得了添加唯一键'UNIQ_5A8A6C8D3DA5256D'('image_id')
,这就是您获得此错误的原因您在image
属性上使用了OneToOne
-关联(一篇文章恰好有一个关联的图像)。将其更改为ManyToOne
(许多帖子可以具有相同的图像)。见:
/**
* @ORM\ManyToOne(targetEntity="FLY\BookingsBundle\Entity\Media", cascade={"persist","remove"})
* @ORM\JoinColumn(nullable=true)
*/
private $image;