[inny][Symfony5] Data Fixtures |
[inny][Symfony5] Data Fixtures |
25.09.2020, 20:24:21
Post
#1
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 1 Dołączył: 23.02.2012 Ostrzeżenie: (0%) |
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(); } } Ten post edytował Resurrection 25.09.2020, 20:25:35 |
|
|
26.09.2020, 11:52:06
Post
#2
|
|
Grupa: Zarejestrowani Postów: 618 Pomógł: 143 Dołączył: 22.12.2010 Ostrzeżenie: (0%) |
Nie masz namespace w klasie User
|
|
|
26.09.2020, 15:20:42
Post
#3
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 1 Dołączył: 23.02.2012 Ostrzeżenie: (0%) |
Moja żona mówi od roku, że muszę już nosić okulary...czas o tym pomyśleć :-) Dziękuję
|
|
|
Wersja Lo-Fi | Aktualny czas: 16.04.2024 - 05:49 |