没有加载引用的Symfony2灯具(约束违规)

时间:2012-02-27 08:48:44

标签: symfony constraints fixtures

我在Symfony2项目灯具上挣扎了好几个小时。这是我得到的错误:

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`wpanel_dev`.`sshuser`, CONSTRAINT `FK_612DE3EE18F45C82` FOREIGN KEY (`website_id`) REFERENCES `Website` (`id`))  

阅读了很多答案之后,我尝试了这种方法没有成功:

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 (with or without --append)

以下是生成错误的灯具代码($ new-> setWebsite($ this-> getReference(' website - '。$ i));)

<?php
namespace WPanel\AdminBundle\DataFixtures\ORM;

use Doctrine\Common\DataFixtures\FixtureInterface;
use WPanel\AdminBundle\Entity\SSHUser;
use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;

class LoadSSHUserData extends AbstractFixture implements OrderedFixtureInterface
{   
    public function getOrder()
    {
        return 5;
    }

    public function load(ObjectManager $manager)
    {

        for($i = 1; $i <= 20; $i++) {
            $new = new SSHUser();
            $new->setUser('sshuser'.$i);
            $new->setPassword('sshuser'.$i);
            $new->setPath('/var/www/website'.$i.'.com');
            $new->setWebsite($this->getReference('website-'.$i));

            $manager->persist($new);
        }

        $manager->flush();
    }
}
?>

我确定参考没问题。我一直在其他类上使用add / getReference而没有任何问题。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

此错误表示如果我理解正确,网站表上没有任何包含该ID的记录。

您的订购有问题,或参考拼写错误。

答案 1 :(得分:0)

由于你使用的$i计数器从0到20,似乎你没有20个网站对象固定装置。