2

私はSymfony2とFOSUserBundleを使用しています。ログイン、ログアウト、プロファイルの表示ができます。

問題:「/ register」に移動し、フォームに入力してEnterキーを押すと、次のエラーが発生します。

存在しないサービス「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 }

アップデート

スタックトレース:

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

4

3 に答える 3

3

FOSUserBundleのバージョンを指定してください。リポジトリヘッドは、2.0.9ではなくSymfonyヘッドと整列しています。

[FOSUserBundle]
    git=git://github.com/FriendsOfSymfony/FOSUserBundle.git
    target=/bundles/FOS/UserBundle
    version=1.0.0
于 2012-01-16T22:26:41.043 に答える
1

FOSUserBundle(またはそれに関するバンドル)を更新する場合は、FOSUserBundleで行われた変更を上書きするファイルに模倣する必要があります。

私の特定のケースでは、RegistrationControllerでFOSUserBundleがauthenticateUserメソッドのsecurity.user_checkerからfos_user.user_checkerに値を変更したため、コントローラーで同じ変更を行いました。

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

于 2012-05-03T22:34:07.873 に答える
0

サービスを正しく登録していますか?または、このサービスのルーティングを追加するのを忘れたのではないでしょうか。

于 2012-01-16T21:18:37.633 に答える