2013-07-24 30 views
5

Tôi có một lớp học quản lý trong đó có định nghĩa này của listFields:Xem danh sách quản trị viên Sonata, tạo thêm các nút sắp xếp tiêu đề?

protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
      ->addIdentifier('type') 
      ->add('created_at', 'datetime') 
      ->add('updated_at', 'datetime') 
      ->add('created_by') 
      ->add('updated_by') 
      ->add('is_active') 
      ->add('is_deleted') 
      ->add('_action', 'actions', 
        array(
       'actions' => array(
        'view' => array(), 
        'edit' => array(), 
        'delete' => array() 
       ) 
      )) 
    ; 

} 

Chỉ có "loại" cột là sắp xếp được - IE, khi bạn di chuột qua tiêu đề bảng cho "Loại" bạn thấy một asc/desc mũi tên và có thể nhấp để sắp xếp lại các hàng dựa trên cột này.

Tôi làm cách nào để hiển thị trên nhiều cột hơn?

Tôi đã thử thêm sortable = true nhưng sau đó nó đang cố gắng tham gia vào một thực thể khác.

+0

Có thể trợ giúp: http://stackoverflow.com/questions/8120787/sonata-admin-bundle-order –

+0

Tôi đã đọc nó, nó chỉ là về thiết lập trường sắp xếp mặc định. Tôi muốn phân loại nhiều cột hơn. (Không phải cùng một lúc, tôi chỉ muốn tùy chọn sắp xếp các cột khác thay vì cột đầu tiên) – Jessica

+0

@Jessica Bạn có thể giải quyết vấn đề không .. ?? Nếu có, vui lòng chia sẻ tại đây. Tôi đang phải đối mặt với vấn đề tương tự. – GBRocks

Trả lời

11
# we can sort the related entity properties like. This following condition site is an entity 

protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
     ->addIdentifier('name') 
     ->add('site',null,array(
      'sortable'=>true, 
      'sort_field_mapping'=> array('fieldName'=>'name'), 
      'sort_parent_association_mappings' => array(array('fieldName'=>'site') 
      ))) 
    ; 
} 

đây là cách sắp xếp các thực thể liên quan trong cấu hình danh sách. Chỉ cần kiểm tra điều này Sort list by an entity field

+0

Điều này đã làm điều đó, cảm ơn bạn. – Jessica

0

Bạn phải thêm sortable tùy chọn trên trường.

Đây là mã tôi sử dụng:

protected function configureListFields(ListMapper $listMapper) { 
    $listMapper 
     ->addIdentifier('name') 
     ->add('application', null, array('sortable' => true)) 
     ->add('isActive', null, array('editable' => true)) 
     ->add('_action', 'actions', array(
      'actions' => array(
       'view' => array(), 
       'edit' => array(), 
       'delete' => array(), 
      ) 
     )) 
    ; 
} 

Hope this helps

+2

"Tôi đã thử thêm sortable = true nhưng sau đó nó đang cố gắng tham gia vào một thực thể khác." – Jessica

+0

Đây là lỗi chính xác mà tôi nhận được khi sử dụng mã đó Lỗi nghiêm trọng có thể bắt được: Đối số 1 được chuyển đến Sonata \ DoctrineORMAdminBundle \ Datagrid \ ProxyQuery :: entityJoin() phải thuộc mảng kiểu, null đã cho, được gọi là/vagrant/vendor/sonata -project/doctrine-orm-admin-bundle/Sonata/DoctrineORMAdminBundle/Datagrid/ProxyQuery.php trên dòng 140 và được định nghĩa trong/vagrant/vendor/sonata-project/doctrine-orm-admin-bundle/Sonata/DoctrineORMAdminBundle/Datagrid/ProxyQuery .php line 245 – Jessica

4

Sonata sẽ có thể sắp xếp một lĩnh vực nếu nó biết những gì nó là loại; nếu bạn liệt kê một thực thể liên quan, nó sẽ không thể sắp xếp.

Đây là configureListFields() từ một thực thể "Sự kiện" trong đó có một tiêu đề và được liên kết với một thực thể "Thành phố".

protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
      ->addIdentifier('title') 
      ->add('city') 
} 

Một liên kết sẽ được tạo ra cho thành phố nhưng nó sẽ không thể sắp xếp được, thay vì thêm một lĩnh vực cụ thể từ "thành phố" sẽ làm việc:

protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
     ->addIdentifier('title') 
     ->add('city.name') 
} 

Bây giờ là sắp xếp.

+0

Nhưng không còn là liên kết đến trang chỉnh sửa cho thực thể đó nữa. – Jessica

Các vấn đề liên quan