2015-01-04 26 views
0

我有这样的代码,使用我的控制器内的原始SQL查询:如何通过从原始SQL查询结果来查看Symfony2的

 $sql1 = "SELECT completion_date FROM enviro_figures_upload GROUP BY YEAR(completion_date), MONTH(completion_date) DESC;"; 

     $activeDate = $this->getDoctrine()->getManager()->getConnection()->prepare($sql1); 
     $activeDate->execute(); 
     $activeDate->fetchAll(); 

此代码,然后将数据传递到视图,然后在使用一个下拉日期选择器。但是,即使在数据库上运行该SQL查询返回我需要的结果,也不会将结果传递给视图。为了将这些数据传递给视图,我错过了什么?

+0

似乎对我工作很好。你如何将数据传递给视图?顺便说一句:你可以做'$ this-> get('database_connection') - > fetchAll('...');' – Federkun 2015-01-04 10:56:30

+0

提供相关的代码如何传递数据来查看? – 2015-01-04 10:58:30

回答

2

$ activeDate-> execute(); $ activeDate-> fetchAll(); 此代码然后将数据传递到视图...

此代码不传递数据,以查看,就必须通过由数据阵列选项render方法,以查看..

像这样:

$sql1 = "SELECT completion_date FROM enviro_figures_upload GROUP BY YEAR(completion_date), MONTH(completion_date) DESC;"; 

$activeDate = $this->getDoctrine()->getManager()->getConnection()->prepare($sql1); 
$activeDate->execute(); 

$result = $activeDate->fetchAll(); 

return $this->render('TEMPLATE_PATH', [ 
    'result' => $result 
]); 
+0

或者只是用数据返回数组,模板名称等于您的操作名称。 – 2015-01-04 13:17:42

+2

仅当您使用'@ Template'注释时。 – qooplmao 2015-01-04 13:28:00

+0

这是正确的,这正是我所做的。这个问题归咎于我的开发服务器上的内存问题,这阻碍了查询正常运行。 – mickburkejnr 2015-01-04 17:27:57