私はSymfonyが初めてです
コントローラー クラスに単純なメソッド indexAction があります。
function indexAction()
{
$em = $this->getDoctrine()
->getEntityManager();
$prods = $em->getRepository('EcommerceProductBundle:ProductData')->findBy(array('product'=>2));
return $this->render('EcommerceProductBundle:Page:index.html.twig', array(
'prods' => $prods
));
}
プロファイルに表示されるクエリがあり、エンティティが適切に取得されているという点で、うまく機能しているようです。
Ecommerce\ProductBundle\Entity\ProductData Valid
Ecommerce\ProductBundle\Entity\ProductData Valid
Ecommerce\ProductBundle\Entity\Product Valid
Ecommerce\ProductBundle\Entity\Language Valid
Ecommerce\ProductBundle\Entity\ProductImage Valid
Ecommerce\ProductBundle\Entity\FileImage Valid
Ecommerce\ProductBundle\Entity\Product Valid
Ecommerce\ProductBundle\Entity\Language Valid
この同じ投稿によると、 Symfony 2 - アクセス マップされたオブジェクト プロパティ フォーム twig
以下のようなProductエンティティのオブジェクトを小枝テンプレート (index.html.twig) で呼び出そうとしました。
{% for prod in prods %}
Price: {{ prod.Product.price }}
{% endfor %}
そしてそれは正しく機能します。以下のようにProductImageエンティティのオブジェクトを呼び出そうとしても、同じことは起こりません
{% for prod in prods %}
Image title: prod.ProductImage.title
or
{% for pimg in prod.ProductImage %}
{% endfor %}
次のエラーが表示されます。
Method "ProductImage" for object "Ecommerce\ProductBundle\Entity\ProductData" does not exist in EcommerceProductBundle:Page:index.html.twig at line 36
ProductImage EntityはProduct Entityのように正しくマッピングされていますが、最初のものとは対照的に、最後のものが完全に機能するのはなぜですか?