有一个数据库表,其中包括两列“ brand_logo”和“ brand_name”列
列“ brand_logo”仅放置jpg文件名(字符串),例如
"logo.jpg"
列“ brand_name”仅放入商店名称(字符串),例如
"northwind_store_name"
我希望如果不存在商店徽标图像值(“ brand_logo”)
然后更改为仅显示商店名称
像这样的代码
PHP的一部分
$tmp["Data"] = "data/brandlogo/" . $brand["brand_logo"];
聪明的模板部分
<div>
{assign "bgImg" "{$brand.brand_logo|replace:'data/brandlogo/':''}.jpg"}
{if file_exists($bgImg)}
<img src="data/brandlogo/{$bgImg}" />
{else}
{$brand.brand_name}
{/if}
</div>
希望结果(如果brand_logo不为空)
<div>
<img src="data/brandlogo/logo.jpg" />
</div>
希望结果(如果brand_logo为空)
<div>
<p>northwind_store_name</p>
</div>
我不确定我的smarty模板部分正确还是不正确
我已经尝试使用简单的代码,例如
<div>
{if $brand.brand_logo}
<img src="data/brandlogo/{$brand.brand_logo}" />
{else}
{$brand.brand_name}
{/if}
</div>
但是它不起作用($ brand.brand_logo总是不为空!)
导致“ data / brandlogo /”需要用于另一个php代码,因此我无法删除
(标记:我不确定我的版本是Smarty,所以Smarty代码可能是两种书写方式)
最佳答案
不要检查文件是否存在于smarty中,请在php中进行处理,然后将结果(正确或错误)发送给smarty。
关于php - 聪明地如何替换现有的字符(添加PHP)来判断显示图像或显示其他列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40926119/