Erreurs méthode Load commande de Data Fixture Symfony 3.3

Par twog93, il y a 7 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

Je veux Générer du contenu par le biais des "Data Fixtures"

Quand j'utilise la méthode avec des valeurs du type => $existantPass[$i]->setContent('my str'), cela fonctionne , mais dès que je veux récupérer les valeurs issue de mon fichier CSV, ça coince , je ne récupère pas les valeurs, pourtant, quand je les dump, ce n'est pas vide....

<?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(); } }

Du coup un belle erreur SQL

[Doctrine\DBAL\Exception\NotNullConstraintViolationException]
An exception occurred while executing 'INSERT INTO password (slug, share
d, date, nbapplications, title, url, login, password, content, updated
at, user_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params ["-5"
, 1, "2018-09-11 16:46:04", 0, null, null, null, null, "my str", null, n
ull]:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'title' can
not be null

2 réponses

twog93, il y a 7 ans

Merci pour ton retour Digivia, $line[0] n'est pasnull pourant, puisque quand je le dump il vaux qulques chose.. avec serialiser, c'est mieux effectivement merci.