繁体   English   中英

Sonata Admin List View,制作更多标题排序按钮?

[英]Sonata Admin List View, make more headers sort buttons?

我有一个Admin类,它有listFields的这个定义:

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()
                )
            ))
    ;

}

只有“类型”列是可排序的 - IE,当您将鼠标悬停在“类型”的表头上时,您会看到一个asc / desc箭头,并且可以单击以根据此列重新排序行。

如何让它显示在更多列上?

我尝试添加sortable = true但是它正在尝试加入另一个实体。

# 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')
            )))
    ;
}

这是在列表配置中对相关实体进行排序的方法。 只需按实体字段检查此排序列表即可

如果它知道它是什么类型,Sonata将能够对一个字段进行排序; 如果列出相关实体,则无法进行排序。

这是来自实体“Event”configureListFields() ,它具有标题并链接到另一个实体“City”

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

将为城市创建一个链接,但它不可排序,而是从“城市”添加特定字段将起作用:

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

现在可以排序了。

您必须在该字段上添加sortable选项。

这是我使用的代码:

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(),
            )
        ))
    ;
}

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM