3

CustomerFirstName、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の有無にかかわらず、カスタムソート基準を追加するにはどうすればよいですか?

4

2 に答える 2

0

次の方法で実行できます。

実在物:

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

そして、Fieds をリストします。

protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->add('textFullName')
        ->add('birthday')
        ->add('email')
        ->add('phone')
    ;
}
于 2014-02-24T17:04:53.893 に答える
0

姓のみでソートしても問題ない場合は、カスタム テンプレートを使用してハッキングできると思います。

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 firstName ではなく lastName のみでソートされることです:-(

于 2013-07-22T09:05:24.517 に答える