1

symfony2 ログインで作業しようとしています。エンティティ クラスをデータベースに接続しています。私のテーブルには、ユーザー名であるユーザーの電子メールしかありません。実際のユーザー名を持っていないことを知っている getUsername() メソッドを使用する必要があります。

このメソッドを削除しようとすると、致命的なエラー メッセージが表示されます。

Fatal error: Class MDPI\BackendBundle\Entity\Users contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Symfony\Component\Security\Core\User\UserInterface::getUsername) in /home/milos/workspace/mdpi-login2/src/MDPI/BackendBundle/Entity/Users.php on line 768 

使うべきか

getUsername()
{
  return this->email;
}

または、これを行うより良い方法はありますか???

ありがとうございました。

4

1 に答える 1

2

ネイティブの Symfony SecurityBundle を使用して、ログイン文字列として使用するエンティティ フィールドを次のように指定するだけですapp/config/security.yml

security:

    encoders:
        MDPI\BackendBundle\Entity\User: plaintext

    providers:
        entity:
            entity: { class: MDPI\BackendBundle\Entity\User, property: email }

    firewalls:
        ...
于 2012-09-24T14:21:13.263 に答える