symfony2のデータベースから認証された標準ログインを作成しようとしています。
私はここのドキュメントに従っています: http://symfony.com/doc/current/book/security.html
そしてここ:
http : //symfony.com/doc/current/cookbook/security/entity_provider.html
私のセキュリティファイル:
security:
encoders:
Acme\UserBundle\Entity\User:
algorithm: sha1
encode_as_base64: false
iterations: 1
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ]
providers:
administrators:
entity: { class: RWLoginBundle:User, property: username }
firewalls:
secured_area:
pattern: ^/
anonymous: ~
form_login: ~
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
私のルーティングファイル:
login:
pattern: /
defaults: { _controller: RWLoginBundle:Default:login }
login_check:
pattern: /login_check
しかし、ユーザーとパスワードを入力すると、次のエラーが発生します。
Fatal error: Call to undefined method RW\LoginBundle\Entity\User::findOneBy() in /var/www/rw/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/Security/User/EntityUserProvider.php on line 55
私のログインページはフォームのドキュメントに従って作成されており、存在するURLに移動するリダイレクト入力があります。
誰かが以前にこのようなものに出くわしたことがありますか?
編集:以下にエンティティを追加
namespace RW\LoginBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;
use Doctrine\Common\Collections\ArrayCollection;
/**
* RW\LoginBundle\Entity\User
*
* @ORM\Table(name="users")
* @ORM\Entity(repositoryClass="RW\LoginBundle\Entity\User")
*/
class User implements UserInterface, \Serializable