2017-03-02 66 views
0

我在TWIG模板中使用Liipimaginebundle显示缩略图时遇到了问题。Liipimaginebundle - FOR循环中的图像

我渲染指数:在index.html.twig我使用

return $this->render('ad/index.html.twig', array(
     'ads' => $ads, 
    )); 

和FOR循环,以显示相关广告的缩略图。

{% for ad in ads %} 
    //with parameter - doesn't work 
    {% set img = ad.mainPhoto %} 
    <img src="{{ img | imagine_filter('thumb') }}" /> 

    //working fine 
    <img src="{{ asset('/uploads/2.png') | imagine_filter('thumb') }}" /> 
{% endfor %} 

mainPhoto店的照片与当前广告的路径 - 例如:

/uploads/2.png 

在使用的 “IMG” 参数,我有一个例外:

的在呈现模板期间抛出异常(路由“liip_imagine_filter”的“参数”路径“必须匹配”。+“(”“给定)以生成相应的URL。”)。

在这种情况下定义路径的正确方法是什么?

+0

,你能否告诉我们的类型和ad.mainPhoto'的'内容? – Veve

+0

@Veve ad.mainPhoto是一个带有路径的字符串,例如/uploads/2.png – mmateja

回答

3

你只传递路径作为一个字符串imagine_filter,添加asset,它应该工作:

{% for ad in ads %} 
    {% set img = ad.mainPhoto|default %} 
    {% if img <> "" %} 
     <img src="{{ asset(img) | imagine_filter('thumb') }}" /> 
    {% endif %} 
{% endfor %} 
+0

感谢您的帮助!这是我的坏...不幸的是,我有一个没有“mainPhoto”的“广告”......这是例外的原因。 BTW img | imagine_filter('thumb')的作品:) – mmateja

+0

它的工作原理...直到你有不同的资产环境。 (Think CDN,静态文件服务器,...)。我已根据评论的第一部分为mainPhoto添加了验证。 – Veve