显示symfony2 twig中的图像列表

时间:2013-12-26 07:58:58

标签: php symfony twig

我已经在以下目录中上传了几张图片 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 %}

1 个答案:

答案 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 %}