ObjectManager не распознается (объявление должно быть совместимо с FixtureInterface-> load) - PullRequest
0 голосов
/ 21 февраля 2020

Я пытался создать DataFixtures, я думаю, что мой код правильный, потому что, если я попробовал другой проект, он сработал. Поэтому я не понимаю, почему именно в этом моем реальном проекте диспетчер объектов не работает, а моя IDE лежит в основе диспетчера объектов.

Моя ошибка:

Declaration must be compatible with FixtureInterface->load(manager: \Doctrine\Persistence\ObjectManager)

Мой код:

<?php

namespace App\DataFixtures;

use App\Entity\User;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;

class UserFixtures extends Fixture
{
    public function __construct(UserPasswordEncoderInterface $passwordEncoder)
    {
        $this->passwordEncoder =$passwordEncoder;
    }

    public function load(ObjectManager $manager)
    {
        foreach ($this->getUserData() as [$email,$password,$lastname,$firstname,$company,$language,$enabled,$pictures])
        {
            $user = new User();
            $user->setEmail($email);
            $user->setPassword($this->passwordEncoder->encodePassword($user,$password));
            $user->setLastname($lastname);
            $user->setFirstname($firstname);
            $user->setCompany($company);
            $user->setLanguage($language);
            $user->setEnabled($enabled);
            $user->setPictures($pictures);

        }
        $manager->flush();
    }

    private function getUserData() : array {
        return [
            ['test@gmail.com','test','paul','marc','WKCompany','BE',1,'https://media.istockphoto.com/photos/businessman-silhouette-as-avatar-or-default-profile-picture-picture-id476085198?k=6&m=476085198&s=612x612&w=0&h=5cDQxXHFzgyz8qYeBQu2gCZq1_TN0z40e_8ayzne0X0=']
        ];
    }
}

1 Ответ

0 голосов
/ 21 февраля 2020

это выглядит просто ошибка типа. Я только изменил пространство имен ObjectManager.

use App\Entity\User;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Persistence\ObjectManager;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;

class UserFixtures extends Fixture
{
    public function __construct(UserPasswordEncoderInterface $passwordEncoder)
    {
        $this->passwordEncoder =$passwordEncoder;
    }

    public function load(ObjectManager $manager)
    {
        foreach ($this->getUserData() as [$email,$password,$lastname,$firstname,$company,$language,$enabled,$pictures])
        {
            $user = new User();
            $user->setEmail($email);
            $user->setPassword($this->passwordEncoder->encodePassword($user,$password));
            $user->setLastname($lastname);
            $user->setFirstname($firstname);
            $user->setCompany($company);
            $user->setLanguage($language);
            $user->setEnabled($enabled);
            $user->setPictures($pictures);

        }
        $manager->flush();
    }

    private function getUserData() : array {
        return [
            ['test@gmail.com','test','paul','marc','WKCompany','BE',1,'https://media.istockphoto.com/photos/businessman-silhouette-as-avatar-or-default-profile-picture-picture-id476085198?k=6&m=476085198&s=612x612&w=0&h=5cDQxXHFzgyz8qYeBQu2gCZq1_TN0z40e_8ayzne0X0=']
        ];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...