$em = $this->getDoctrine()->getManager();
$products = $em->getRepository('NameDemoBundle:Product')->findAllOrderedByName($id);
存储库中的功能:
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()
;
}
代码工作正常,但我想进入与结果相关的类别。
当我使用getSingleResult()
代替getResult()
时,此代码:
$category = $products->getCategory()->getName();
工作正常,但在getResults
我有多个结果时出现错误:
Call to a member function getCategory() on a non-object
有人可以解释一下原因吗?
答案 0 :(得分:0)
getResult返回一个对象数组,即使你只有一个结果,所以你首先必须解析$ products来获得这样的每个$ product对象
foreach ( $products as $product )
{
$product->getcategory()->getName();
}
希望这会有所帮助:)
答案 1 :(得分:0)
好吧,我有它
$category = array();
foreach ($products as $product)
{
$category[] = $product->getcategory()->getName();
}
现在仍然在主题中我必须弄清楚
{% for product in product %}
<li>{{ product.description }} | {{ product.id }} | {{category??}}</li>
{% endfor %}