您好我正在使用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
功能,以便检查文件是否存在?
答案 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人)渲染树枝模板的确切方法,但它的逻辑相同。