树枝检查文件是否存在

时间:2015-07-16 00:55:52

标签: php twig file-exists

您好我正在使用slim framework和twig,这是我目前在php中的代码:

$filename = '/path/to/foo.txt';
if (file_exists($filename)) {
    echo "The file $filename exists";
} else {
    echo "The file $filename does not exist";
}

现在我想把if语句放在我的模板文件中。如何在我的树枝模板中使用file_exists功能,以便检查文件是否存在?

2 个答案:

答案 0 :(得分:9)

您可以创建自己的函数或test,只需将参数传递给PHP函数。

$test = new Twig_SimpleTest('ondisk', function ($file) {
    return file_exists($file);
});

然后在你的模板中:

{% if filename is ondisk %}
    blah
{% endif %}

不幸的是存在在英语中听起来很奇怪。也许一个功能会更有意义。

答案 1 :(得分:5)

如果您真的需要在模板端进行验证,那么创建自定义函数就没问题了。但Twig并不打算以这种方式使用。

您可以将valitadion设置为php并将标志传递给您的模板:

PHP

$q service

TWIG

$filename = '/path/to/foo.txt';
$file_exists = file_exists($filename);
// ...
$app->render(
    'yourTemplate',
    array( 'file_exists' => $file_exists )
);

免责声明:我不知道使用Slim(这里是Symfony2人)渲染树枝模板的确切方法,但它的逻辑相同。