Symfony2 - 检查Twig中是否存在文件

时间:2014-06-16 23:15:57

标签: image symfony twig

有没有办法检查文件是否存在于Twig中,以便在新创建的帖子中上传图像?

我的帖子设置方式是,如果没有上传图片,Twig模板会显示一个空框,其中包含图像所在位置的比例,但它是一个空白的框,这是一个尴尬的空白框看看。

问题是,如果有一个特定的命令与if语句一起使用来检查文件是否存在,如果不存在,则显示图像代码,如果不显示图像代码。

图片代码:(这是我想隐藏的代码,如果没有图片来摆脱空盒子)

<div class="entry-thumbnail">
    <img width="230" height="172" src="{{ asset(['images/', post.image]|join) }}" class="" alt=""/>
</div>

1 个答案:

答案 0 :(得分:1)

你可以写一个枝条扩展名并使用这样的代码:

use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Filesystem\Exception\IOException;
use Symfony\Component\Finder\Finder;


    $this->fs=new Filesystem();

    if (!$this->fs->exists($directory)) {
        $this->logger->info("there is no ".$directory." ...");
    } else {
        $this->logger->info("Directory ".$directory."  already exists.");
    }

但我宁愿使用像

这样的javascripz 你的img标签中的

<img ... onError="this.src='imagefound.gif';" />

更新:

图像标签有一个onError-Handler,在找不到src属性中的图像时触发。所以,不要使用这种简单的内联语法,你可以这样做:

伪jquery代码:

$(document).on('error','img',function(){
    $(this).attr("src","../path/to/placeholerImage.png");
});