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
Auteur
Réponse acceptée

Juste pour dire que le sujet est résolu