我想显示我可视化的每个产品的详细信息。实际上,我正在按“名称”检索有关该产品的信息。每个产品都有一个URL列表。 我得到的错误是:在数组上调用成员函数getUrls() 这是我的代码(我尝试 findByOne ,但徒劳):
public function detailsProductAction(string $nomProduit) {
$em = $this->getDoctrine()->getManager();
$produit = $this->getDoctrine()->getRepository(Produit::class)->findByNom( $nomProduit );
$urls = $produit->getUrls();
$prix_array = [];
foreach ($produit->getUrls() as $url) {
$i = 0;
$p = 0;
foreach ($url->getHistprices() as $prix) {
if ($i == 0) {
$date = $prix->getDateajout();
$i++;
} else {
if ($prix->getDateajout() > $date) {
$date = $prix->getDateajout();
$p = $i;
}
$i++;
}
}
array_push($prix_array, $p);
}
return $this->render('ProductBundle:Product:detailsProduct.html.twig', array('produit' => $produit, 'prix' => $prix_array));
}
这是我在存储库中的功能:
public function findByNom($str){
return $this->getEntityManager()
->createQuery(
'SELECT e
FROM ProductBundle:Produit e
WHERE e.nom LIKE :str'
)
->setParameter('str', '%'.$str.'%')
->getResult();
}
这是我的路线:
productdetails:
path: /productdetails/{nomProduit}
defaults: { _controller: ProductBundle:Product:detailsProduct }