Symfony Faker Отношения - PullRequest
       18

Symfony Faker Отношения

0 голосов
/ 14 сентября 2018

Здравствуйте, я пришел к вам, потому что у меня возникла небольшая проблема с фейкером и dataFixtures, фактически, когда я запускаю команду для добавления данных, я имею ошибку в базе данных, потому что «region_id» равен нулю, я делюсь своим кодом

namespace App\DataFixtures;

use App\Entity\Advertisement;
use App\Entity\Category;
use App\Entity\Region;
use App\Entity\User;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;
use Faker\ORM\Doctrine\Populator;

class AppFixtures extends Fixture
{
    /**
     * @param ObjectManager $manager
     */
    public function load(ObjectManager $manager)
    {
        $generator = \Faker\Factory::create('fr_FR');

        $populator = new Populator($generator, $manager);
        $populator->addEntity(Advertisement::class, 200, [
            'address' => function() use ($generator) { return $generator->address; },
            'description' => $generator->text(2000),
            'price' => mt_getrandmax(),
            'imageName' => function() use ($generator) { return 'https://picsum.photos/1000/700'; },
            'imageName2' => function() use ($generator) { return 'https://picsum.photos/1000/700'; },
            'imageName3' => function() use ($generator) { return 'https://picsum.photos/1000/700'; },
            'imageName4' => function() use ($generator) { return 'https://picsum.photos/1000/700'; },
        ]);
        $populator->addEntity(User::class, 10);
        $populator->addEntity(Category::class, 5);
        $populator->execute();
        $manager->flush();
    }
}

и моя сущность Рекламные отношения

/**
     * @ORM\ManyToOne(targetEntity="App\Entity\Region", inversedBy="advertisement")
     * @ORM\JoinColumn(nullable=false)
     */
    private $region;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Category", inversedBy="advertisement")
     * @ORM\JoinColumn(nullable=false)
     */
    private $category;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="advertisement")
     * @ORM\JoinColumn(nullable=false)
     */
    private $user;

    /**
     * @ORM\Column(type="datetime")
     */
    private $CreatedAt;

    public function __construct()
    {
        $this->CreatedAt = new \DateTime('now', new \DateTimeZone('Europe/Paris'));
        $this->isValid = 0;
    }

Моя проблема в том, что в базе данных мне сообщают отношения в нуле. Я не понимаю, почему, если у вас есть решение или идея, я беруСпасибо за вашу помощь

...