fzaninotto faker

Par barpoi78, il y a 4 ans


Bonjour,

J'utilise Faker de fzaninotto pour générer des fakes (Articles etc.)

et j'obtiens l'erreur suivante dans lorem.php à la ligne 135:

join(): Argument #1 ($pieces) must be of type array, string given

J'utilise la version Symfony CLI version v4.26.3, Symfony version 5.3.7, php 8, mysql 5.7.31

return join(static::sentences($nbSentences), ' ');

Bon, ça marche de cette façon:

// return join(static::sentences(' ', $nbSentences)) . '.'; return join(static::sentences($nbSentences));

il y a aussi cette ligne (95) qu'il faut corriger:

// return join($words, ' ') . '.'; return join(' ', $words) . '.';

Par contre, il faut mettre une valeur par défaut à la date dans la table sinon, cela ne fonctionne pas.

Mon code pour générer des données dans AppFixtures.php:

<?php namespace App\DataFixtures; use App\Entity\Article; use App\Entity\Category; use App\Entity\User; use Doctrine\Bundle\FixturesBundle\Fixture; use Doctrine\Persistence\ObjectManager; use Faker; class AppFixtures extends Fixture { public function load(ObjectManager $manager) { // $product = new Product(); // $manager->persist($product); $faker = Faker\Factory::create(); $users = []; for ($i = 0; $i < 50; $i++){ $user = new User(); $user->setUsername($faker->name); $user->setFirstname($faker->firstname()); $user->setLastname($faker->lastname()); $user->setEmail($faker->email()); $user->setPassword($faker->password()); // $user->setCreatedAt($faker->CreatedAt()); $user->setCreatedAt(new \DateTimeImmutable()); $manager->persist($user); $users[] = $user; } $categories = []; for ($i = 0; $i < 15; $i++){ $category = new Category(); $category->setTitle($faker->text(50)); $category->setDescription($faker->text(250)); $category->setImage($faker->ImageUrl()); $manager->persist($category); $categories[] = $category; } // $articles = []; for ($i = 0; $i < 100; $i++){ $article = new Article(); $article->setTitle($faker->text(50)); $article->setContent($faker->text(6000)); $article->setImage($faker->ImageUrl()); // $article->setCreatedAt($faker->CreatedAt()); $article->setCreatedAt(new \DateTimeImmutable()); $article->addCategory($categories[$faker->numberBetween(0,14)]); $article->setAuthor($users[$faker->numberBetween(0,49)]); $manager->persist($article); // $articles[] = $article; } $manager->flush(); } }

Voilà, si ça peut aider

Je vous remercie de votre aide

1 réponse

barpoi78, il y a 4 ans

Juste pour dire que le sujet est résolu