Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inny][Symfony5] Data Fixtures
Forum PHP.pl > Forum > PHP > Frameworki
Resurrection
Witam,
Utworzyłem za pomocą MakerBundle klasę User którą odwzorowałem za pomocą Doctrine w bazie danych. Następnie utworzyłem fixtures. Nie zależnie od tego czy ręcznie dodam tag w services.yaml czy w klasie fixtures (UserFixtures) zaimplementuje ORMFixtureInterface otrzymuje błąd

Cytat
The autoloader expected class "App\Entity\User" to be defined in file "...". The file was found but the class was not in it, the class name or names
> loading App\DataFixtures\UserFixtures
pace probably has a typo.


Nie widzę literówki w nazwie pliku,klasy i przestrzeni nazw. Proszę o wskazówkę gdzie jest błąd.

Kod
<?php
use App\Repository\UserRepository;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;

/**
* @ORM\Entity(repositoryClass=UserRepository::class)
*/
class User implements UserInterface
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=180, unique=true)
     */
    private $email;

    /**
     * @ORM\Column(type="json")
     */
    private $roles = [];

    /**
     * @var string The hashed password
     * @ORM\Column(type="string")
     */
    private $password;

    public function getId(): ?int
    {
        return $this->id;
    }

    public function getEmail(): ?string
    {
        return $this->email;
    }

    public function setEmail(string $email): self
    {
        $this->email = $email;

        return $this;
    }

    /**
     * A visual identifier that represents this user.
     *
     * @see UserInterface
     */
    public function getUsername(): string
    {
        return (string) $this->email;
    }

    /**
     * @see UserInterface
     */
    public function getRoles(): array
    {
        $roles = $this->roles;
        // guarantee every user at least has ROLE_USER
        $roles[] = 'ROLE_USER';

        return array_unique($roles);
    }

    public function setRoles(array $roles): self
    {
        $this->roles = $roles;

        return $this;
    }

    /**
     * @see UserInterface
     */
    public function getPassword(): string
    {
        return (string) $this->password;
    }

    public function setPassword(string $password): self
    {
        $this->password = $password;

        return $this;
    }

    /**
     * @see UserInterface
     */
    public function getSalt()
    {
        // not needed when using the "bcrypt" algorithm in security.yaml
    }

    /**
     * @see UserInterface
     */
    public function eraseCredentials()
    {
        // If you store any temporary, sensitive data on the user, clear it here
        // $this->plainPassword = null;
    }
}

Kod
<?php

namespace App\DataFixtures;

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

class UserFixtures implements ORMFixtureInterface
{
    private $passwordEncoder;

    public function __construct(UserPasswordEncoderInterface $passwordEncoder)
    {
      $this->passwordEncoder = $passwordEncoder;
    }

    public function load(ObjectManager $manager)
    {
        $user = new User();
        $user->setPassword($this->passwordEncoder->encodePassword(
            $user,
            'takie sobie hasło'
        ));
        $manager->persist($user);
        $manager->flush();
    }
}
ohm
Nie masz namespace w klasie User smile.gif
Resurrection
Moja żona mówi od roku, że muszę już nosić okulary...czas o tym pomyśleć :-) Dziękuję
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.