【发布时间】:2015-11-08 13:09:45
【问题描述】:
在我的模板中,我想调用一个函数来显示 Company 中 Employee 的总数。Employee 与 Department 相关,Department 与 Company 以一对多的关系关联。
{% for com in company %}
{{ com.name }}
{{ com.description }}
{{ com.getNumberOfEmp|length }} //this a function must display counts of employee
{% endfor %}
在控制器中
$em = $this->getDoctrine()->getManager();
$company = $em->getRepository('Bundle:Company')->findAll();
我应该把 getNumberOfEmp 方法放在哪里?
在 Symfony 1.4 中,我通过将 getNumberOfEmp 放入将调用 company.table.class 的 company.class 中轻松实现了这一点
另一个问题是,如何正确使用Doctrine或DQL查询多个Join? 我试过这个功能,但我不知道它是否正确
companyrepository.php
public function getNumberOfEmp()
{
return $this
->createQueryBuilder()
->select('e.firstname')
->from('Emp e')
->leftJoin('e.Department d')
->leftJoin('d.Company c')
->where('i.id =:$id)
->setParameter('id',$this->id)// I am confused about this since i want to display all names of the company
->getQuery()
->getResult()
;
}
在 Symfony 1.4 中我以这种方式使用它
//company.class.php
public function getNumberOfEmp()
{
$emp = Doctrine_Core::getTable('Company')->createQuery('c')
->select('v.firstname')
->from('Employeers e')
->leftJoin('e.Department d')
->leftJoin('d.Company c')
->where('c.id=?',$this->id);
return $emp->execute();
}
并在php模板中轻松调用它
<?php foreach ($company as $com): ?>
<?php echo $com->name ?>/display name of company
<?php echo $com->description ?>//description
<?php echo count($com.getNumberOfEmp) ?>//dispalys number of employees
<?php endforeach ?>
有什么想法吗?
【问题讨论】:
-
一篇文章中有两个问题。很少是好消息的预兆。对于您的第一个问题,请查看树枝扩展:symfony.com/doc/current/cookbook/templating/twig_extension.html
-
对于第二个问题,您的连接看起来不错,但请看这里:stackoverflow.com/questions/9214471/…,因为您只需要计数。
标签: symfony doctrine-orm twig dql