2014-11-04 122 views
0

为什么SonataAdminBundle操作列表无操作'编辑'。只有一个'删除'。在教程中,我看到这个操作应该是prisutstyvat默认的。如何在管理页面添加此操作? 我UserAdmin.php:在SonataAdminBundle中缺少操作'编辑'

<?php 
// src/Acme/DemoBundle/Admin/PostAdmin.php 

namespace Acme\AdminBundle\Admin; 
use Sonata\AdminBundle\Route\RouteCollection; 
use Sonata\AdminBundle\Admin\Admin; 
use Sonata\AdminBundle\Datagrid\DatagridMapper; 
use Sonata\AdminBundle\Datagrid\ListMapper; 
use Sonata\AdminBundle\Form\FormMapper; 

class UserAdmin extends Admin 
{ 
    protected $baseRoutePattern = 'users'; 


    // Fields to be shown on create/edit forms 
    protected function configureFormFields(FormMapper $formMapper) 
    { 
     $formMapper 
      ->add('first_name', 'text') 
      ->add('last_name', 'text') 
      ->add('username', 'text') 
      ->add('email', 'text') 
      ->add('plainPassword', 'password') 
      ->add('roles','choice',array('choices'=>$this->getConfigurationPool()->getContainer()->getParameter('security.role_hierarchy.roles'),'multiple'=>true)); 

     ; 
    } 

    // Fields to be shown on filter forms 
    protected function configureDatagridFilters(DatagridMapper $datagridMapper) 
    { 
     $datagridMapper 
      ->add('id') 
      ->add('first_name') 
      ->add('last_name') 
      ->add('username') 
      ->add('email') 

     ; 
    } 
    // Fields to be shown on lists 
    protected function configureListFields(ListMapper $listMapper) 
    { 
     $listMapper 
      ->add('id') 
      ->add('first_name') 
      ->add('last_name') 
      ->add('username') 
      ->add('email') 
      ->add('roles') 
     ; 
    } 


} 

回答

1

,你可以轻松地添加或通过调用$ formMapper添加configureFormFields

的方法
/** 
* @param ListMapper $listMapper 
*/ 
protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
     ->add('_action', 'actions', array(
      'actions' => array(
       'edit' => array(), 
       'delete' => array(), 
      ) 
     )) 
    ; 
}