많은 사람들이 내 테이블에서 관계를 더 잘 수행하는 방법을 찾아야한다고 말하고 있지만 'products'테이블과 'product_images'테이블이 있습니다. 쿼리에 쉽게 조인 할 수 있지만 이미지 경로가 크게 달라서 테이블에 경로 이름을 저장하지 않으므로 경로가 무엇인지 알아보기 위해 계산이 필요한 함수가 필요합니다. 각 제품에 대해 이미지의 경로를 얻기 위해 반복 할 때 각 제품에 대해 실행할 메서드가 필요합니다.Twig에서 엔티티 메서드를 호출하는 방법
내가하고 싶은, 어쩌면 내가 제대로 생각하고 있지 않다 무엇, 나뭇 가지에 나는 방법이 호출하게 될 제품 엔티티
{% for product in products %}
{{product.getImageUrl()}}
{% endfor %}
에 대해 실행하는 방법을 문의하고 싶습니다 내 제품 내 저장소에서
//AppBundle:Entity:Product
public function getImageUrl()
{
$repository = $this->getDoctrine()->getRepository('AppBundle:Product');
return $repository->getImagePath($this->id);
}
법인
://AppBundle:Repositiories:ProductRepository
public function getImagePath($id)
{
return 'http://domain.com/path/to/image.jpg'//simplified for my question
}
내가 어떻게 할 수 있습니까? 나는 순간에 이것을 시도 할 때, 나는 다음과 같은 오류가 점점 오전 : 나는 엔티티에서 방법을 사용하여 수행 할 수있는 방법은 라인 (19)
<img src="{{product.getImageUrl()}}" alt="img">
입니다
An exception has been thrown during the rendering of a template ("Notice: Array to string conversion") in product/index.html.twig at line 19.
? 아니면 제가 어떻게 할 수 있는지 말해주세요. 미리 감사드립니다.
당신은 정말 당신의 관계가 더 잘하는 방법을 알아낼해야 해결해야하는 대신
getOneOrNullResult()
를 호출하려고합니다. 농담이야. 너의 나뭇 가지가 맞아. Product :: getImageUrl()이 그것을 증명하기 위해 단순한 문자열을 돌려 주도록하십시오. 제품 실체가 엉망입니다. 컨테이너에 접근 할 수있는 방법이 없습니다. ProductImagManager :: getImageUrl ($ product)과 같은 것이 필요할 것입니다. 그런 다음 나뭇 가지 확장을 통해 나뭇 가지에 액세스하십시오. 나는 당신이 실제로 제품 엔티티 배열을 전달하고 제품 배열 배열을 전달하지 않는다고 가정합니다. 어떤 오류 메시지가 나타내는 것 같습니다. – Cerad{{product.imageUrl}}? – Alsatian