在 Symfony 2.7.3 中从数据库中获取对象
Fetching objects from database in Symfony 2.7.3
我正在尝试显示存储在数据库中的一些对象属性。我有控制器、实体和视图。我没有异常,但看不到对象属性。
控制器:
/**
* @Route ("/ov", name="ov")
*/
public function select(){
$a=$this->getDoctrine()->getRepository('AppBundle:PC')->find(2);
if(!$a){
throw $this->createNotFoundExcepction('No PC');
}
return $this->render('PcDetailed.html.twig', array('pcs' => $a));
}
查看:
{% extends 'master.html.twig' %}
{% block divCentral %}
<div class="row">
<p>Nom del pc</p>
<div class="small-6 small-centered columns">
{% for pc in pcs %}
<p>{{ pc.nom }}</p>
{% endfor %}
</div>
</div>
{% endblock %}
编辑:
最后,正如 Chris 所说,问题是因为在我正在使用的视图上,我试图迭代的是一个对象,而不是一个数组。这就是为什么不起作用。
我必须这样做:
return $this->render('PcDetailed.html.twig', array('pcs' => array($a)));
在您的控制器中,您获取 ID 为 2 的 PC 并将其传递给视图。
在视图中,您现在正在尝试迭代此对象。我不知道当你尝试迭代不是数组或集合的东西时 TWIG 做了什么,但也许它只是默默地失败了。
要修复它,请更改您的控制器代码以将数组发送到视图:
return $this->render('PcDetailed.html.twig', array('pcs' => array($a)));
我正在尝试显示存储在数据库中的一些对象属性。我有控制器、实体和视图。我没有异常,但看不到对象属性。
控制器:
/**
* @Route ("/ov", name="ov")
*/
public function select(){
$a=$this->getDoctrine()->getRepository('AppBundle:PC')->find(2);
if(!$a){
throw $this->createNotFoundExcepction('No PC');
}
return $this->render('PcDetailed.html.twig', array('pcs' => $a));
}
查看:
{% extends 'master.html.twig' %}
{% block divCentral %}
<div class="row">
<p>Nom del pc</p>
<div class="small-6 small-centered columns">
{% for pc in pcs %}
<p>{{ pc.nom }}</p>
{% endfor %}
</div>
</div>
{% endblock %}
编辑:
最后,正如 Chris 所说,问题是因为在我正在使用的视图上,我试图迭代的是一个对象,而不是一个数组。这就是为什么不起作用。
我必须这样做:
return $this->render('PcDetailed.html.twig', array('pcs' => array($a)));
在您的控制器中,您获取 ID 为 2 的 PC 并将其传递给视图。
在视图中,您现在正在尝试迭代此对象。我不知道当你尝试迭代不是数组或集合的东西时 TWIG 做了什么,但也许它只是默默地失败了。
要修复它,请更改您的控制器代码以将数组发送到视图:
return $this->render('PcDetailed.html.twig', array('pcs' => array($a)));