2015-07-16 1 views
3

Здравствуйте поэтому я использую тонкие рамки и прут, а вот мой текущий код в PHP:проверка Twig, если файл существует

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

Теперь я хочу поставить, если заявление в файле шаблона. Как я могу использовать функцию file_exists в моем шаблоне ветки, чтобы проверить, существует ли файл?

ответ

3

Создание пользовательской функции просто отлично, если вам действительно нужно сделать валидацию на стороне шаблона. Но Twig не предназначен для использования таким образом.

Вы можете просто сделать сторону valitadion PHP и передать флаг в шаблон:

PHP

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

прутик

{% if file_exists %} 
    do stuff 
{% endif %} 

Отказ от ответственности: я не знаю, точный способ визуализации шаблона ветви с помощью Slim (Symfony2 guy здесь), но это та же логика.

+0

Намного проще. Благодаря! – FewFlyBy

8

Вы можете создать свою собственную функцию или test и просто передать аргументы функции PHP.

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

А потом в шаблоне:

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

К сожалению это существует звучит странно на английском языке. Возможно, функция будет иметь больше смысла.

+0

Куда мне помещать созданную функцию? – FewFlyBy

+0

Взгляните на [этот ответ] (http://stackoverflow.com/a/9506794/5113242). – Anonymous

+0

Имея трудное понимание, но попробую: D – FewFlyBy

 Смежные вопросы

  • Нет связанных вопросов^_^