2013-12-13 3 views
2

Привет, я хотел бы показать боковую панель в комплекте соната admin, однако я не могу найти хороший пример, это код, который я использую, чтобы показать его в режиме редактирования:Показать боковую панель в режиме просмотра - Sonata admin bundle

protected function configureSideMenu(MenuItemInterface $menu, $action, AdminInterface $childAdmin = null) { 
    if (!$childAdmin && !in_array($action, array('edit'))) { 
     return; 
    } 

    $admin = $this->isChild() ? $this->getParent() : $this; 
    $id = $admin->getRequest()->get('id'); 

    $menu->addChild(
     'view', 
     array('uri' => $admin->generateUrl('edit', array('id' => $id))) 
    ); 

    $menu->addChild(
     'replies', 
     array('uri' => $admin->generateUrl('sonata.admin.module.application.replies.list', array('id' => $id))) 
    ); 
} 

Однако я бы хотел, чтобы он отображался в представлении представления, так как я показываю это как значение по умолчанию, потому что форма не должна редактироваться.

Это мой configureShowFields

protected function configureShowFields(ShowMapper $showMapper) { 
    $showMapper 
     ->add('application') 
     ->add('denied') 
     ->add('details', 'string', array('template' => 'MyBundle:Admin:jsonToTable.html.twig')) 
    ; 
} 

ответ

3

Нашел, просто добавьте правильное действие функции configureSideMenu

protected function configureSideMenu(MenuItemInterface $menu, $action, AdminInterface $childAdmin = null) 
{ 
    if (!$childAdmin && !in_array($action, array('edit', 'show'))) { 
     return; 
    } 
    $admin = $this->isChild() ? $this->getParent() : $this; 
    $id = $admin->getRequest()->get('id'); 

    $menu->addChild(
     'view', 
     array('uri' => $admin->generateUrl('show', array('id' => $id))) 
    ); 

    $menu->addChild(
     'replies', 
     array('uri' => $admin->generateUrl('sonata.admin.module.application.replies.list', array('id' => $id))) 
    ); 
} 
Смежные вопросы