Bonjour,
Voila je rencontre un petit problème avec mon code.
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();
}
}
[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
Ca me parait clair comme erreur, $line[0] est null...
Après si tu veux faire un code "propre", utilise le composant serializer de Symfony pour importer ton csv et le transformer en array php.
Va voir : https://symfony.com/blog/new-in-symfony-3-2-csv-and-yaml-encoders-for-serializer
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.