完整性约束冲突:1062 键“UNIQ_BE2DDF8CBCF5E72D”的重复条目“23”


Integrity constraint violation: 1062 Duplicate entry '23' for key 'UNIQ_BE2DDF8CBCF5E72D'

我是symfony的初学者。

我安装了夹具捆绑包。我想在我的表格中添加产品,该产品与另外两个表格媒体和类别相关联。使用引用并打更新,我可以在类别表和媒体中看到添加的结果,但对于产品表,我收到错误.这里是类产品的代码.php

/**
 * @ORM'ManyToOne(targetEntity="Ecommerce'EcommerceBundle'Entity'Categories",cascade={"persist","remove"})
 * @ORM'JoinColumn(nullable=false)
 */
private $categorie;

这里是类产品代码.php

namespace Ecommerce'EcommerceBundle'DataFixtures'ORM;
use Doctrine'Common'DataFixtures'AbstractFixture;
use Doctrine'Common'DataFixtures'OrderedFixtureInterface;
use Doctrine'Common'Persistence'ObjectManager;
use Ecommerce'EcommerceBundle'Entity'Produits;
class ProduitsData extends AbstractFixture implements OrderedFixtureInterface
{
    public function load(ObjectManager $manager)
    {
        $produit1 = new Produits();
        $produit1->setCategorie($this->getReference('categorie1'));
        $produit1->setDescription("Le poivron rouge est un groupe de cultivars de l'espèce Capsicum annuum.");
        $produit1->setDisponible('1');
        $produit1->setImage($this->getReference('media3'));
        $produit1->setNom('Poivron rouge');
        $produit1->setPrix('1.99');
        $produit1->setTva($this->getReference('tva2'));
        $manager->persist($produit1);
        $produit2 = new Produits();
        $produit2->setCategorie($this->getReference('categorie1'));
        $produit2->setDescription("Piment est généralement associé à la saveur du piquant (pimenté).");
        $produit2->setDisponible('1');
        $produit2->setImage($this->getReference('media4'));
        $produit2->setNom('Piment');
        $produit2->setPrix('3.99');
        $produit2->setTva($this->getReference('tva2'));
        $manager->persist($produit2);
        $produit3 = new Produits();
        $produit3->setCategorie($this->getReference('categorie1'));
        $produit3->setDescription("La tomate est une espèce de plantes herbacées de la famille des Solanacées, originaire du nord-ouest de l'Amérique du Sud.");
        $produit3->setDisponible('1');
        $produit3->setImage($this->getReference('media5'));
        $produit3->setNom('Tomate');
        $produit3->setPrix('0.99');
        $produit3->setTva($this->getReference('tva2'));
        $manager->persist($produit3);
        $produit4 = new Produits();
        $produit4->setCategorie($this->getReference('categorie1'));
        $produit4->setDescription("Le poivron vert est un groupe de cultivars de l'espèce Capsicum annuum.");
        $produit4->setDisponible('1');
        $produit4->setImage($this->getReference('media6'));
        $produit4->setNom('Poivron vert');
        $produit4->setPrix('2.99');
        $produit4->setTva($this->getReference('tva2'));
        $manager->persist($produit4);
        $produit5 = new Produits();
        $produit5->setCategorie($this->getReference('categorie2'));
        $produit5->setDescription("Le raisin est le fruit de la Vigne. Le raisin de la vigne cultivée Vitis vinifera est un des fruits les plus cultivés au monde, avec 68 millions de tonnes produites en 2010.");
        $produit5->setDisponible('1');
        $produit5->setImage($this->getReference('media7'));
        $produit5->setNom('Raisin');
        $produit5->setPrix('0.97');
        $produit5->setTva($this->getReference('tva2'));
        $manager->persist($produit5);
        $produit6 = new Produits();
        $produit6->setCategorie($this->getReference('categorie2'));
        $produit6->setDescription("L’orange est un agrume, fruit des orangers, des arbres de différentes espèces de la famille des Rutacées ou d'hybrides de ceux-ci.");
        $produit6->setDisponible('1');
        $produit6->setImage($this->getReference('media8'));
        $produit6->setNom('Orange');
        $produit6->setPrix('1.20');
        $produit6->setTva($this->getReference('tva2'));
        $manager->persist($produit6);
        $manager->flush();
    }
    public function getOrder()
    {
        return 4;
    }
}

这里的例外:

C:'wamp'www'ecommerce>php app/console doctrine:fixtures:load
Careful, database will be purged. Do you want to continue y/N ?y
  > purging database
> loading [1] Ecommerce'EcommerceBundle'DataFixtures'ORM'MediaData
> loading [2] Ecommerce'EcommerceBundle'DataFixtures'ORM'CategoriesData
> loading [3] Ecommerce'EcommerceBundle'DataFixtures'ORM'TvaData
> loading [4] Ecommerce'EcommerceBundle'DataFixtures'ORM'ProduitsData

  [Doctrine'DBAL'DBALException]
 An exception occurred while executing 'INSERT INTO produits (nom, description, prix, disponible, image_id, categorie_id, tva_id) VALUES (?, ?, ?, ?, ?
, ?, ?)' with params ["Piment", "Piment est g'u00e9n'u00e9ralement associ'u
00e9 'u00e0 la saveur du piquant (piment'u00e9).", "3.99", "1", 92, 23, 24]
:
  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '23'
  for key 'UNIQ_BE2DDF8CBCF5E72D'

  [PDOException]
   SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '23'
for key 'UNIQ_BE2DDF8CBCF5E72D'

doctrine:fixtures:load [--fixtures [FIXTURES]] [--append] [--em EM] [--shard SHA
RD] [--purge-with-truncate] [--multiple-transactions]

请帮忙:( :(

看起来 categorie_id 属性有一个唯一的键。确保在 Produits 实体文件中,

Ecommerce'EcommerceBundle'Entity'Produits

分类的 @ORM''列设置为 unique = false 。之后,您需要更新架构中的更改,

php app/console doctrine:schema:update --force

然后再次尝试运行夹具。如果它继续给出完整性约束错误。检查可能具有唯一键的其他属性。如果所有其他方法都失败了,请尝试删除数据库并从新的

php app/console doctrine:database:drop --force
php app/console doctrine:database:create
php app/console doctrine:schema:update --force
php app/console doctrine:fixtures:load