我有一个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的情况下添加自定义排序条件?
答案 0 :(得分: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而不是lastName firstName进行排序: - (
答案 1 :(得分:0)
你可以这样做:
实体:
public function getTextFullName()
{
return $this->LastName . $this->FirstName;
}
并列出Fieds:
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->add('textFullName')
->add('birthday')
->add('email')
->add('phone')
;
}