я не знаю что случилось - PullRequest
0 голосов
/ 17 апреля 2019

Я получаю: Ошибка: Class App \ Entity \ User содержит 1 абстрактный метод и поэтому должен быть объявлен как абстрактный или реализовать оставшиеся методы

(Symfony \ Component \ Security \ Основные \ User \ :: GetUserName пользовательским интерфейсом)

use Symfony\Component\Security\Core\User\UserInterface; 
    use App\Entity\Role; 
    /**  
    * @ORM\Entity(repositoryClass="App\Repository\UserRepository")  
    */ 
    class User implements UserInterface, \Serializable {     
    /**      
    * @ORM\Id()      
    * @ORM\GeneratedValue()      
    * @ORM\Column(type="integer")..

Мне нужно создать форму регистрации.

1 Ответ

0 голосов
/ 17 апреля 2019

Вы реализуете UserInterface, поэтому вам необходимо реализовать все связанные методы. В вашем случае у вас есть ошибка с getUsername, поэтому добавьте ее к вашей сущности:

public function getUsername(): ?string
{
    return $this->username;
}
public function setUsername(string $username): void
{
    $this->username = $username;
}

Возможно, у вас есть другой способ реализации ( см. Демонстрацию ), например:

public function setFullName(string $fullName): void
{
    $this->fullName = $fullName;
}
public function getFullName(): ?string
{
    return $this->fullName;
}
public function getEmail(): ?string
{
    return $this->email;
}
public function setEmail(string $email): void
{
    $this->email = $email;
}
public function getPassword(): ?string
{
    return $this->password;
}
public function setPassword(string $password): void
{
    $this->password = $password;
}
/**
 * Returns the roles or permissions granted to the user for security.
 */
public function getRoles(): array
{
    $roles = $this->roles;
    // guarantees that a user always has at least one role for security
    if (empty($roles)) {
        $roles[] = 'ROLE_USER';
    }
    return array_unique($roles);
}
public function setRoles(array $roles): void
{
    $this->roles = $roles;
}
/**
 * Returns the salt that was originally used to encode the password.
 *
 * {@inheritdoc}
 */
public function getSalt(): ?string
{
    // See "Do you need to use a Salt?" at https://symfony.com/doc/current/cookbook/security/entity_provider.html
    // we're using bcrypt in security.yml to encode the password, so
    // the salt value is built-in and you don't have to generate one
    return null;
}
/**
 * Removes sensitive data from the user.
 *
 * {@inheritdoc}
 */
public function eraseCredentials(): void
{
    // if you had a plainPassword property, you'd nullify it here
    // $this->plainPassword = null;
}
/**
 * {@inheritdoc}
 */
public function serialize(): string
{
    // add $this->salt too if you don't use Bcrypt or Argon2i
    return serialize([$this->id, $this->username, $this->password]);
}
/**
 * {@inheritdoc}
 */
public function unserialize($serialized): void
{
    // add $this->salt too if you don't use Bcrypt or Argon2i
    [$this->id, $this->username, $this->password] = unserialize($serialized, ['allowed_classes' => false]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...