2012-01-16 5 views
2

私はSymfony 2とFOSUserBundleを使用しています。私はログインし、ログアウトし、プロフィールを見ることができます。Symfony2 FOSUserBundle - 存在しないサービス "security.user_checker"を要求しました

問題:私は「/登録」に進み、フォームや押しを記入し、私は次のエラーを取得する次のように入力します

あなたは「security.user_checker」存在しないサービスを要求しました。 500内部サーバーエラー - ServiceNotFoundException

私はいくつか追加の設定などを行っているようですが、それについて何も見つかりません。 config.ymlの

パート:

fos_user: 
    db_driver: orm 
    firewall_name: fos_user 
    user_class: Blogger\BlogBundle\Entity\User 

のsecurity.yml:

security: 
    encoders: 
     Symfony\Component\Security\Core\User\User: plaintext 
     FOS\UserBundle\Model\UserInterface: sha512 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 

    providers: 
     in_memory: 
      users: 
       user: { password: userpass, roles: [ 'ROLE_USER' ] } 
       admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } 
     fos_user: 
      id: fos_user.user_manager 

    firewalls: 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 

     fos_user: 
      pattern: ^/ 
      provider: fos_user 
      form_login: 
       check_path: /login_check 
       login_path: /login 
      logout: 
       path: /logout 
       target:/
      anonymous: ~ 

    access_control: 
     - { path: /secured/admin, roles: ROLE_ADMIN } 
     - { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY } 

UPDATE

スタックトレース:

http://i.stack.imgur.com/vsGwF.png

+0

あなたのconfig.ymlにインデントがありますか?トラブルを引き起こす可能性があります。 –

+0

元のファイルの字下げは正しくありません。私は質問を更新しました。 – Dennis

+0

使用しているFOSUserBundleのバージョンが使用しているSymfonyのバージョンと互換性があることを確認しましたか?それは何度も私を噛み砕く。 –

答えて

3

FOSUserBundleのバージョンを指定してください。リポジトリの頭部は、2.0.9ではなく、Symfonyの頭部と揃っています。

[FOSUserBundle] 
    git=git://github.com/FriendsOfSymfony/FOSUserBundle.git 
    target=/bundles/FOS/UserBundle 
    version=1.0.0 
+0

あなたは正しいです。それは素晴らしい作品です。ありがとう! – Dennis

+2

常にバージョンを指定してください。更新する際に苦労することはありません。 githubでは、タグの下で利用可能なバージョンを見つけることができます。 –

0

サービスを登録してもよろしいですか? または、このサービスのルーティングを追加していないのを忘れましたか?

+0

私の "app /routing.yml ":[link](http://pastebin.com/RjwTdeut) – Dennis

+0

あなたはどんなサービスを意味しますか? [AppKernel.php](http://pastebin.com/SYAZDM7P)にバンドルを登録しました – Dennis

+0

どのenvで働いていますか?あなたはcelarキャッシュを試しましたか? – Pawel

1

あなたがFOSUserBundle(またはそのことについては、バンドル)を更新している場合、あなたはあなたが上書きされたファイルにFOSUserBundleで行われた変更を模倣することを確認する必要があります。

特に私の場合、RegistrationController FOSUserBundleではauthenticateUserメソッドの値をsecurity.user_checkerからfos_user.user_checkerに変更したので、私は自分のコントローラに同じ変更を加えました。

ベンダーのアップデートを行うたびに、バンドルに上書きしているファイル(コントローラ、サービスなど)が、削除されたサービスクラスやメソッドに依存していないことを確認する必要があります。

関連する問題