Symfony3:选择每个月的订单总数

时间:2016-06-12 13:32:33

标签: doctrine-orm symfony query-builder

我想显示一个包含每个月订单总数的图表。 现在控制器中的数据是静态(50,20,12,33,19,21,42,30,5,17,9,28)

我的问题是如何创建查询以选择每个月的订单总数并将结果动态地放入系列数据

entities = $em->getRepository('AppBundle:Order')->totalOrders();
    // Chart
$series = array(
    array("name" => "Number of orders",    "data" => 50,20,12,33,19,21,42,30,5,17,9,28)
);

$months = array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');


$ob = new Highchart();
    $ob->chart->renderTo('linechart');  // The #id of the div where to render the chart
    $ob->chart->type('column');
    $ob->title->text('Chart Title');
    $ob->xAxis->title(array('text'  => "Horizontal axis title"));
    $ob->xAxis->categories($months);
    $ob->yAxis->title(array('text'  => "Vertical axis title"));
    $ob->yAxis($series);
    $ob->series($series);

我不知道如何在query_builder中执行此操作

public function totalOrders()
{
    $qb = $this->createQueryBuilder('o')
        ->select('COUNT(o)')

        ->groupBy(''); //group by month


    return $qb->getQuery()->getSingleScalarResult();
}

实体

/**
* Order
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="AppBundle\Entity\OrderRepository")
*/
class Order
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var \DateTime
 *
 * @ORM\Column(name="date", type="datetime")
 */
private $date;
//..............

0 个答案:

没有答案