2012-12-11 22 views
5

我也跟着教程設置SonataAdminFosUer
FosUser似乎沒關係的連接和斷開路線「管理/登入」不存在錯誤的Symfony2 + SonataAdminBundle

然而索納塔我無法訪問到
>my_host/web/app_dev.php/admin/dashboard
當我嘗試防火牆重定向到:my_host/web/app_dev.php/admin/login

,並拋出一個錯誤:
Route "admin/login" does not exist.
500 Internal Server Error - RouteNotFoundException

的routing.yml看起來是正確的:

admin: 
    resource: '@SonataAdminBundle/Resources/config/routing/sonata_admin.xml' 
    prefix: /admin 
_sonata_admin: 
    resource: . 
    type: sonata_admin 
    prefix: /admin 
soanata_user: 
    resource: '@SonataUserBundle/Resources/config/routing/admin_security.xml' 
    prefix: /admin[/xml] 

Config.yml:

sonata_block: 
    default_contexts: [cms] 
    blocks: 
     sonata.admin.block.admin_list: 
      contexts: [admin] 
     sonata.block.service.text: 
     sonata.block.service.action: 
     sonata.block.service.rss: 
sonata_admin: 
    title:  Admin Panel 
    templates: 
     ## default global templates 
     layout: SonataAdminBundle::standard_layout.html.twig 
     ajax: SonataAdminBundle::ajax_layout.html.twig 
     ## default actions templates, should extend a global templates 
     list: SonataAdminBundle:CRUD:list.html.twig 
     show: SonataAdminBundle:CRUD:show.html.twig 
     edit: SonataAdminBundle:CRUD:edit.html.twig 
fos_user: 
    db_driver: orm 
    firewall_name: main 
    user_class: Application\Sonata\UserBundle\Entity\User 

Security.yml:

firewalls: 
    admin: 
     pattern:  /admin(.*) 
     form_login: 
      provider:  fos_userbundle 
      login_path:  admin/login 
      use_forward: false 
      check_path:  admin/login_check 
      failure_path: null 
     logout: 
      path:   /admin/logout 
     anonymous: true 

     # defaut login area for standard users 
     main: 
      pattern:  .* 
      form_login: 
       provider:  fos_userbundle 
       login_path:  /login 
       use_forward: false 
       check_path:  /login_check 
       failure_path: null 
      logout:  true 
      anonymous: true 

    access_control: 
      # URL of FOSUserBundle which need to be available to anonymous users 
     - { path: ^/_wdt, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/_profiler, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 

     # -> custom access control for the admin area of the URL 
     - { path: ^/admin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin/login-check$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     # -> end 

     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 

     # Secured part of the site 
     # This config requires being logged for the whole site and having the admin role for the admin part. 
     # Change these rules to adapt them to your needs 
     - { path: ^/admin, role: [ROLE_ADMIN, ROLE_SONATA_ADMIN] } 
     - { path: ^/.*, role: IS_AUTHENTICATED_ANONYMOUSLY } 

PHP應用程序/控制檯路線:調試:

admin_sonata_user_group_show   ANY  /admin/sonata/user/group/{id}/show 
admin_sonata_user_group_export   ANY  /admin/sonata/user/group/export 
sonata_user_admin_security_login  ANY  /admin[/xml]/login 
sonata_user_admin_security_check  ANY  /admin[/xml]/login_check 
sonata_user_admin_security_logout  ANY  /admin[/xml]/logout 

如果我有IS_AUTHENTICATED_ANONYMOUSLY到角色:
在行 - { path: ^/admin, role: [ROLE_ADMIN, ROLE_SONATA_ADMIN] }
我可以訪問admin/dashboard,因爲我不是重定向到管理員/登錄,所以我覺得是不是sonataBundle的問題。

你有什麼想法嗎?

非常感謝。

+0

Anydoby能幫助我嗎? – Morgan

+0

你有沒有解決過這個問題 – Gowri

回答

1

我在全新安裝後出現此錯誤。

要解決它修改app/config/routing.ymlprefix: /admin,而不是prefix: /admin[/xml]soanata_user:.

3

你必須下添加routing information裏面你app/config/routing.yml

sonata_user: 
    resource: '@SonataUserBundle/Resources/config/routing/admin_security.xml' 
    prefix: /admin