簡體   English   中英

Symfony 2 Sonata Admin - ListMapper中的自定義排序

[英]Symfony 2 Sonata Admin - Custom sort in ListMapper

我有一個Customer實體,其中包含FirstName,LastName等字段。

我在這個實體中有一個方法,如下所示:

public function getFullName() {
        return sprintf("%s %s", $this->getLastName(), $this->getFirstName());
}

我的configureListFields函數如下所示:

protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->add('fullName')
        ->add('birthday')
        ->add('email')
        ->add('phone')
    ;
}

如何使字段fullName可排序?

如何在有或沒有Doctrine ORM的情況下添加自定義排序條件?

我猜你可以破解使用自定義模板,如果可以只對姓氏進行排序。

protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->add('last', null, array(
            'sortable' => true,
            'template' => 'YourAdminBundle:CRUD:fullname.html.twig')
        ->add('birthday')
        ->add('email')
        ->add('phone')
    ;
}

在您的模板中:

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field%}
{{ object.lastName }} {{ object.firstName }} 
{% endblock %}

問題是它只會對lastName而不是lastName firstName進行排序:-(

你可以這樣做:

實體:

public function getTextFullName() 
{
   return $this->LastName . $this->FirstName;
}

並列出Fieds:

protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->add('textFullName')
        ->add('birthday')
        ->add('email')
        ->add('phone')
    ;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM