DataFixtures Symfony 3.3 SQLSTATE [23000]

时间:2018-09-11 14:55:55

标签: php symfony doctrine-orm fopen fixtures

嗨, 我想从Symfony 3.3中的Datafixtures生成内容

如果我使用csv文件中的Load方法,则出现SQLSTATE [23000]错误,如果我在方法中使用字符串数据,则效果很好,但一一...对它们没有兴趣

a_cols = ['animal', 'name']
f_cols = ['food', 'name']
a_pd[a_cols].merge(f_pd[f_cols], on='name', how='left')

我的例外:

<?php


namespace PasswordManager\Bundle\PlatformBundle\DataFixtures\ORM;


use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
use PasswordManager\Bundle\PlatformBundle\Entity\Password as Password;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use PasswordManager\Bundle\PlatformBundle\Controller\PasswordController;



class LoadPassword extends PasswordController implements FixtureInterface
{

    public function load(ObjectManager $manager){



        $csv = fopen(dirname(__FILE__).'/loadexistPass/file.csv', 'r');
        $i = 0;
        while (!feof($csv)) {
            $line = fgetcsv($csv);
            $existantPass[$i] = new Password();
            $existantPass[$i]->setSlug($line[0]);
            $existantPass[$i]->setShared(1);
            $existantPass[$i]->setTitle($line[0]);
            $existantPass[$i]->setUrl($line[0]);
            $existantPass[$i]->setLogin($line[1]);
            $existantPass[$i]->setPassword($line[2]);
            $existantPass[$i]->setContent('my str');
            $manager->persist($existantPass[$i]);




            $i = $i ++;
        }

        fclose($csv);

        $manager->flush();
    }



}

你能帮我吗?

列“ title”不能为空,但是当我转储内容frym文件时,它将显示内容

1 个答案:

答案 0 :(得分:0)

消息:

Column 'title' can not be null 

$existantPass[$i]->setTitle($line[0]?? 'some-value');