Значение поля Smarty в инструкции If

#smarty

#smarty

Вопрос:

Я пытаюсь включить значение поля базы данных в инструкцию Smarty if file exists, подобную этой.

 {if file_exists('docs/owner_comments/{$property.id}.shtml')} 
{include file="{$incownercomments}/{$property.id}.shtml"}

{else} 

....

{/if}
  

Однако это не работает. Проблема связана с первой строкой. Как я могу включить значение поля в часть {если файл существует …}?

Я ценю вашу помощь.

Ответ №1:

Вы должны изменить ' в первой строке на " и, конечно, убедиться, что путь действителен

Я создал тестовый скрипт:

index.php:

 $smarty->assign('property', array('id' => 2));        
$smarty->display('testme.tpl');
  

testme.tpl

 {$property.id}

{if file_exists("templates/testme{$property.id}.tpl")} 
{include file="templates/testme{$property.id}.tpl"}

{else} 

....

{/if}
  

testme2.tpl

 testme2
  

Вывод

2 testme2

как и ожидалось. Если я изменю в index.php линия

 $smarty->assign('property', array('id' => 2));   
  

в

 $smarty->assign('property', array('id' => 3));   
  

и файл testme2.tpl не существует, я получаю вывод

3 ….

как и ожидалось