在 Symfony2 中将 id 作为参数发送
Send id as a parameter in Symfony2
如何为 getNumberOfTasks() 设置 id 参数? id 参数应具有数据库中 id 字段的值。我已经完成了 $entities->getId() 但我收到一个错误,如 Trying to get 属性 of non-object
DefaultController.php
public function indexAction()
{
$em = $this->getDoctrine()->getManager();
$entities = $em->getRepository('TestBundle:Projects')->findAll();
$tasks = $em->getRepository('TestBundle:Tasks')->getNumberOfTasks($entities->getId);
/*dump($entities);
die();
*/
return $this->render('TestBundle:Default:index.html.twig', [
'projects' => $entities,
'tasks' => $tasks,
]
);
}
任务存储库
public function getNumberOfTasks($id)
{
$qb = $this->createQueryBuilder('p')
->where('p.projects = :id')
->setParameter('id', 1)
->getQuery();
return count($qb->getResult());
}
public function getNumberOfCompletedTasks($id)
{
$qb = $this->createQueryBuilder('p')
->where('p.projects = :id','p.completed = 1')
->setParameter('id', 1)
->getQuery();
return count($qb->getResult());
}
public function getPercentComplete($id)
{
$numberOfTasks = $this->getNumberOfTasks($id);
$numberOfCompletedTasks = $this->getNumberOfCompletedTasks($id);
if($numberOfTasks == 0)
return 100;
return ($numberOfCompletedTasks / $numberOfTasks) * 100;
}
行:
$entities = $em->getRepository('TestBundle:Projects')->findAll();
正在返回一个对象数组。
如果你想拥有 id,你应该在实体中迭代:
foreach ($entities as $entity) {
$tasks[] = $em->getRepository('TestBundle:Tasks')->getNumberOfTasks($entity->getId);
}
然后在树枝中迭代 tasks
如何为 getNumberOfTasks() 设置 id 参数? id 参数应具有数据库中 id 字段的值。我已经完成了 $entities->getId() 但我收到一个错误,如 Trying to get 属性 of non-object DefaultController.php
public function indexAction()
{
$em = $this->getDoctrine()->getManager();
$entities = $em->getRepository('TestBundle:Projects')->findAll();
$tasks = $em->getRepository('TestBundle:Tasks')->getNumberOfTasks($entities->getId);
/*dump($entities);
die();
*/
return $this->render('TestBundle:Default:index.html.twig', [
'projects' => $entities,
'tasks' => $tasks,
]
);
}
任务存储库
public function getNumberOfTasks($id)
{
$qb = $this->createQueryBuilder('p')
->where('p.projects = :id')
->setParameter('id', 1)
->getQuery();
return count($qb->getResult());
}
public function getNumberOfCompletedTasks($id)
{
$qb = $this->createQueryBuilder('p')
->where('p.projects = :id','p.completed = 1')
->setParameter('id', 1)
->getQuery();
return count($qb->getResult());
}
public function getPercentComplete($id)
{
$numberOfTasks = $this->getNumberOfTasks($id);
$numberOfCompletedTasks = $this->getNumberOfCompletedTasks($id);
if($numberOfTasks == 0)
return 100;
return ($numberOfCompletedTasks / $numberOfTasks) * 100;
}
行:
$entities = $em->getRepository('TestBundle:Projects')->findAll();
正在返回一个对象数组。
如果你想拥有 id,你应该在实体中迭代:
foreach ($entities as $entity) {
$tasks[] = $em->getRepository('TestBundle:Tasks')->getNumberOfTasks($entity->getId);
}
然后在树枝中迭代 tasks