Php 尝试使用Symfony 2获取相关表时出错
存储库中的功能:Php 尝试使用Symfony 2获取相关表时出错,php,symfony,orm,doctrine,Php,Symfony,Orm,Doctrine,存储库中的功能: $em = $this->getDoctrine()->getManager(); $products = $em->getRepository('NameDemoBundle:Product')->findAllOrderedByName($id); 代码工作正常,但我想进入与结果相关的类别 当我使用getSingleResult()而不是getResult()时,此代码: public function findAllOrderedByName($
$em = $this->getDoctrine()->getManager();
$products = $em->getRepository('NameDemoBundle:Product')->findAllOrderedByName($id);
代码工作正常,但我想进入与结果相关的类别
当我使用getSingleResult()
而不是getResult()
时,此代码:
public function findAllOrderedByName($name)
{
return $this->getEntityManager()
->createQuery(
'SELECT p,c FROM NameDemoBundle:Product p JOIN p.category c WHERE p.price = :name ORDER BY p.name ASC'
)
->setParameter('name', $name)
->getResult()
;
}
工作正常,但在getResults
上,当我有多个结果时,会出现错误:
$category = $products->getCategory()->getName();
有人能解释一下原因吗?getResult返回一个对象数组,即使您只有一个结果,所以您首先必须解析$products以获得每个$product对象,如下所示
Call to a member function getCategory() on a non-object
希望这会有帮助:)好的,我有了
foreach ( $products as $product )
{
$product->getcategory()->getName();
}
现在仍然是我必须弄清楚的主题
$category = array();
foreach ($products as $product)
{
$category[] = $product->getcategory()->getName();
}
{%用于产品%中的产品]
{{product.description}}{{product.id}}{{category???}}
{%endfor%}
这对你有用还是需要更多帮助?你不应该发布多个答案,这很让人困惑。请尝试编辑您的答案。{{product.category.name}您可以像arrayye一样访问产品的所有相关对象。如果有人需要{{category[loop.index0]},我会这样做。}简单快速地感谢您的帮助,所以您应该选择好的答案,将您的问题标记为已回答,这对社区很有用!
{% for product in product %}
<li>{{ product.description }} | {{ product.id }} | {{category??}}</li>
{% endfor %}