在奏鸣曲管理列表的顶部显示订单总量

show total amount of orders on the top of a sonata admin list

过滤特定条件后,在页面顶部显示销售交易总额。如果页面不止一个,这应该是所有页面的总和。

谁能指导我怎么做

我们按照以下方式完成,效果非常好

第 1 步:按顺序添加了两个方法Admin

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 %}