我想做这样的事情
{if image_exists}
<img src='{$path}{$imagename}'>
{else}
<img src='{$path}default.jpg'>
{/if}
我该如何解决这个问题?
答案 0 :(得分:5)
不是让Smarty做逻辑,而是让实际的PHP代替它做更好。
在PHP中,您可以执行以下操作:
if (file_exists($filename))
{
$path = $filename;
}
else
{
$path = 'default.jpg';
}
然后在模板中,您不需要任何if
语句。只需像往常一样使用img
标记。
<img src="{$path}" />
如果你真的想在模板文件中进行检查,只需使用Smarty的if
语句正常使用PHP函数。
{if file_exists($path . $imagename)}
<img src='{$path}{$imagename}'>
{else}
<img src='{$path}default.jpg'>
{/if}
答案 1 :(得分:3)
Smarty file_exists函数只接受绝对路径。
所以你可以这样做:
{assign var="specialmsg" value="/var/www/html/public/uploads/{$logo}"}
{if file_exists({$specialmsg})}
\\SOME CODE HERE
{else}
\\ELSE CODE HERE
{/if}
答案 2 :(得分:0)
{if $(image variable whatever u used) ne ""}{$pathtoimagedirectory}/{$imagename}{else}{$path to default image}/{$defaultimagename}{/if}