2016-05-31 6 views
-1

После фильтрации по конкретным критериям отобразите итоговые суммы транзакций продаж в верхней части страницы. Это должно быть общее количество всех страниц, если страниц больше одного.показать общую сумму заказов в верхней части списка администраторов сонаты

Может кто-то наставит меня, как это сделать

ответ

0

Мы сделали это следующим образом, и он работает как шарм

Шаг 1: Добавлено двух методов в orderAdmin

public function getTemplate($name) 
{ 
    if($name == 'list') { 
     return 'AppBundle:OrderAdmin:list.html.twig'; 
    } 

    return parent::getTemplate($name); stub 
} 

public function getSumOf($field) 
{ 
    $datagrid = $this->getDatagrid(); 
    $datagrid->buildPager(); 
    $query = $datagrid->getQuery(); 

    $query->select('SUM(' . $query->getRootAlias() . '.' . $field . ') as total'); 
    $query->setFirstResult(null); 
    $query->setMaxResults(null); 


    $result = $query->execute(array(), \Doctrine\ORM\Query::HYDRATE_SINGLE_SCALAR); 

    return $result; 
} 

Шаг 2: Создал файл шаблона list.html.twig

{% extends 'SonataAdminBundle:CRUD:base_list.html.twig' %} 
{% block list_header %} 
<div class="pull-right" style="margin-right: 10px;"> 
    <label for="{{ admin.uniqid }}_sum_of_orders" class="control-label">Grand Total: </label> 
    <label class="control-label"> S$ {{ admin.getSumOf('orderAmount') }} </label> 
</div> 
{% endblock %}