控制器
$count_em = $this->getDoctrine()->getRepository('AppBundle:St_Jude_Email');
$count_dql = $count_em->createQueryBuilder('c')
->select('count(c.flag)')
->where('c.flag = 0');
$flag_count = $count_dql->getQuery();
$count = $flag_count->getSingleScalarResult();
return $count;
Config.yml
Twig:
globals:
count: '@AppBundle\Controller\countMail'
如何显示枝条中的全局计数? 对不起,我是symfony的新手,不知道如何显示'计数'在树枝上。 我尝试了{{count}},但得到了错误'在渲染模板期间抛出异常(" Catchable Fatal Error:类AppBundle \ Controller \ countMail的对象无法转换为字符串& #34;)'
答案 0 :(得分:0)
如果您需要将其返回到模板 - 将其作为数组返回。
return ['count' => $count];
在其他情况下,如果您需要全局使用,则需要使用twig扩展名look this documentation。
答案 1 :(得分:0)
@AppBundle \ Controller \ countMail - 这是一个服务参考。 在您的情况下,您需要创建一个symfony服务 - https://symfony.com/doc/current/service_container.html 然后将该服务引用为全局树枝变量。 然后在您的模板中引用服务中的任何公共方法 例如{{count.methodThat ReturnsSomeValue}}
使用这种方法,您不需要在每个控制器操作中将任何内容传递给twig渲染器
答案 2 :(得分:0)
您应该创建一个服务,例如MailService
,例如一个countAllMail()
方法。在这种方法中,你可以做你的数据库。之后,您可以执行以下操作:
config.yml
twig:
globals:
my_global_mail_service: '@AppBundle\Service\MailService'
在 twig模板中,您可以像这样使用您的服务
{{ my_global_mail_service.countAllMail() }}