2013-07-28 5 views
2

Я пытаюсь установить SonataAdminBundle. Я думаю, что следил за документацией, а также читал некоторые блоги об этом. Но я не мог этого сделать.Symfony2 - SonataAdmin - пустой блок admin_list

При переходе на страницу admin/dashboard, я вижу название Sonata, я могу видеть sonata.block.service.text и sonata.block.service.rss справа, но в admin_list ничего нет. block => Я не вижу мою Entity.

Вот как я его настроил. Может, я что-то забыл? Вот приложение/Config/config.yml

imports: 
- { resource: parameters.yml } 
- { resource: security.yml } 
- { resource: ../../src/Pierre/TennisBundle/Resources/config/admin.yml } 

... 

sonata_block: 
    default_contexts: [cms] 
    blocks: 
     sonata.admin.block.admin_list: 
      contexts: [admin] 

     sonata.block.service.text: 
     sonata.block.service.rss: 

sonata_doctrine_orm_admin: 
    # default value is null, so doctrine uses the value defined in the configuration 
    entity_manager: '@doctrine.orm.entity_manager' 

    templates: 
     form: 
      - SonataDoctrineORMAdminBundle:Form:form_admin_fields.html.twig 
     filter: 
     - SonataDoctrineORMAdminBundle:Form:filter_admin_fields.html.twig 
     types: 
      list: 
       array:  SonataAdminBundle:CRUD:list_array.html.twig 
       boolean: SonataAdminBundle:CRUD:list_boolean.html.twig 
       date:  SonataAdminBundle:CRUD:list_date.html.twig 
       time:  SonataAdminBundle:CRUD:list_time.html.twig 
       datetime: SonataAdminBundle:CRUD:list_datetime.html.twig 
       text:  SonataAdminBundle:CRUD:base_list_field.html.twig 
       trans:  SonataAdminBundle:CRUD:list_trans.html.twig 
       string:  SonataAdminBundle:CRUD:base_list_field.html.twig 
       smallint: SonataAdminBundle:CRUD:base_list_field.html.twig 
       bigint:  SonataAdminBundle:CRUD:base_list_field.html.twig 
       integer: SonataAdminBundle:CRUD:base_list_field.html.twig 
       decimal: SonataAdminBundle:CRUD:base_list_field.html.twig 
       identifier: SonataAdminBundle:CRUD:base_list_field.html.twig 

      show: 
       array:  SonataAdminBundle:CRUD:show_array.html.twig 
       boolean: SonataAdminBundle:CRUD:show_boolean.html.twig 
       date:  SonataAdminBundle:CRUD:show_date.html.twig 
       time:  SonataAdminBundle:CRUD:show_time.html.twig 
       datetime: SonataAdminBundle:CRUD:show_datetime.html.twig 
       text:  SonataAdminBundle:CRUD:base_show_field.html.twig 
       trans:  SonataAdminBundle:CRUD:show_trans.html.twig 
       string:  SonataAdminBundle:CRUD:base_show_field.html.twig 
       smallint: SonataAdminBundle:CRUD:base_show_field.html.twig 
       bigint:  SonataAdminBundle:CRUD:base_show_field.html.twig 
       integer: SonataAdminBundle:CRUD:base_show_field.html.twig 
       decimal: SonataAdminBundle:CRUD:base_show_field.html.twig 

sonata_admin: 
    security: 
     handler: sonata.admin.security.handler.role 

    title:  Sonata Project 
    title_logo: /bundles/sonataadmin/logo_title.png 
    templates: 
     # default global templates 
     layout: SonataAdminBundle::standard_layout.html.twig 
     ajax: SonataAdminBundle::ajax_layout.html.twig 
     dashboard: SonataAdminBundle:Core:dashboard.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 

    dashboard: 
     blocks: 
      # display a dashboard block 
      - { position: left, type: sonata.admin.block.admin_list } 

      # Customize this part to add new block configuration 
      - { position: right, type: sonata.block.service.text, settings: { content: "<h2>Welcome to the Sonata Admin</h2> <p>This is a <code>sonata.block.service.text</code> from the Block Bundle, you can create and add new block in these area by configuring the <code>sonata_admin</code> section.</p> <br /> For instance, here a RSS feed parser (<code>sonata.block.service.rss</code>):"} } 
      - { position: right, type: sonata.block.service.rss, settings: { title: Sonata Project's Feeds, url: http://sonata-project.org/blog/archive.rss }} 

     groups: 
      sonata_page: 
       label: TestLabel 
       items: ~ 



    # set to true to persist filter settings per admin module in the user's session 
    persist_filters: true 

Мой класс админ

namespace Pierre\TennisBundle\Admin; 

use Sonata\AdminBundle\Admin\Admin; 
use Sonata\AdminBundle\Datagrid\ListMapper; 
use Sonata\AdminBundle\Datagrid\DatagridMapper; 
use Sonata\AdminBundle\Form\FormMapper; 

use Pierre\TennisBundle\Entity\Tennismen; 

class TennismenAdmin extends Admin 
{ 
    protected function configureFormFields(FormMapper $formMapper) 
    { 
     $formMapper 
      ->add('name') 
       ; 
    } 

    protected function configureDatagridFilters(DatagridMapper $datagridMapper) 
    { 
     $datagridMapper 
      ->add('name') 
       ; 
    } 

    protected function configureListFields(ListMapper $listMapper) 
    { 
     $listMapper 
      ->addIdentifier('name') 
       ; 
    } 
} 

Мой контроллер:

namespace Pierre\TennisBundle\Controller; 

use Sonata\AdminBundle\Controller\CRUDController as Controller; 

class TennismenAdminController extends Controller 
{ 
} 

И моя служба:

# TennisBundle/Resources/config/admin.yml 
services: 
    pierre.tennis.admin.tennismen: 
     class: Pierre\TennisBundle\Admin\TennismenAdmin 
     tags: 
      - { name: sonata.admin, manager_type: orm, group: sonata_page, label: Blog } 
     arguments: [null, Pierre\TennisBundle\Entity\Tennismen, PierreTennisBundle:TennismenAdmin] 

Так Я думаю, что я уважаю гид ... но я не могу видеть свою Entity Tennismen на приборной панели.

ответ

2

Можете ли вы попробовать SonataAdminBundle:CRUD в качестве третьего аргумента в определении услуги? Кроме того, убедитесь, что вы вошли в систему с супер администратором (если у вас установлен SonataUserAdmin). Кроме того, попробуйте удалить dashboard в вашем config.yml или попробуйте использовать как можно меньше конфигурации все вместе.

+0

Привет, спасибо за внимание. Я пробовал оба, но он все еще ничего не показывает. Я не использую SonataUser, но я установил FOSuser. Это была вещь РОЛЬ? Знаете ли вы, какую роль я должен иметь? – Pierrito

0

Я могу решить это благодаря вам! Мне пришлось добавить роль FOSUser SUPER_ADMIN моему пользователю, чтобы увидеть admin_block.

Спасибо!

+1

Я принимаю «спасибо» как upvote;) – TautrimasPajarskas

3

Но в некоторых случаях предоставления SUPER_ADMIN роли для всех пользователей не является решением проблемы, убедитесь, что у вас есть эта линия в YOUT parameters.yml:

security.acl.permission.map.class: Sonata\AdminBundle\Security\Acl\Permission\AdminPermissionMap 
+0

Этот совет работал для меня. Большое спасибо. – GeekTantra

Смежные вопросы