我已经在以下目录中上传了几张图片 BundleVoteBundle / web / uploads / images / nominee / 图像名称是唯一的。 现在我希望使用此控制器显示所有数据和相应的图像
public function indexAction()
{
$nominee= $this->getDoctrine()->getRepository('BundleVoteBundle:Nomination')->findAll();
if(!$nominee){
throw $this->createNotFoundException('There is no nominee in your list');
} else {
return $this->render('BundleVoteBundle:Nomination:index.html.twig',array('nominees'=>$nominee));
}
}
现在我的问题是如何使用for循环在twig中显示图像。 在twig文件中,我只能使用其图像ID显示一个图像。
{% for nominee in nominees %}
<p>{{nominee.name|upper}}</p>
{{nominee.path}}
<img src="{{asset('uploads/images/voter/52bbc07a8136e.jpeg')}}"/>
{% endfor %}
答案 0 :(得分:1)
在Nomination
实体中有一个返回上传图像路径的方法会很舒服:
class Nomination
{
// ...
protected $path; // here we hold filenames, like 52bbc07a8136e.jpeg
//...
public function getPhotoUploadDir() {
return 'uploads/images/voter';
}
//...
}
然后在树枝上你应该能够这样使用它:
{% for nominee in nominees %}
<p>{{nominee.name|upper}}</p>
// should return web/uploads/voter/52bbc07a8136e.jpeg #}
<img src="{{ asset(nominee.photoUploadDir) ~ '/' ~ nominee.path }}" />
{% endfor %}