【发布时间】:2015-09-03 16:11:16
【问题描述】:
我正在制作一个工具,用户可以在其中查看来自实体的数据,他们可以在其中选择哪些数据以及如何查看记录。
我创建了一个表单,其中包含两个日期字段(开始和结束)以及与实体的数据计数和总和相对应的字段列表。
我的问题是:
如何创建动态 QueryBuilder 以允许我根据用户想要查看的内容添加字段?
编辑Symfony2 dynamic queryBuilder
public function reportData($fields, $dateStart, $dateFinish)
{
$em = $this->getEntityManager()
->getRepository('AcmeBundle:Entity');
$query = $em->createQueryBuilder('e');
foreach($fields as $field)
{
switch($field)
{
case 'totalResults':
$query->setect('SUM(e.id) AS '.$field);
break;
}
}
$query->addWhere('e.dateStart >= :dateStart');
$query->addWhere('e.dateFinish <= :dateFinish');
...
【问题讨论】:
-
这是为表单生成器而不是为 queryBuilder :(
-
是的,确实如此。我的错 !您可以将一系列选项传递给您的实体存储库吗?
-
是的,我将在 entityRepo 中的函数添加到原始消息中
-
这只是一个想法,但我认为这不是最好的方法。
标签: symfony dynamic doctrine query-builder