【问题标题】:Concatenation in smartysmarty中的串联
【发布时间】:2012-04-18 20:45:22
【问题描述】:

我想把这两个变量拼接得到的值用一个字符串赋值。

{assign var="url" value="{$WS_PATH}aircraft_images/{$images[i].image}"}

请让我知道我们如何在 smarty 中做到这一点。

【问题讨论】:

标签: smarty


【解决方案1】:

你已经正确使用了assign

一个简化的示例可能如下所示:

你的phpfile.php:

$tpl = new Smarty;
$tpl->assign('var1','Hello');
$tpl->assign('var2','World');
$tpl->display('yourtemplate.tpl');

你的模板.tpl:

...
<body>
{assign var="url" value="{$var1} - and - {$var2}"}
{$url}
</body>

...将导致输出:

Hello - and - World

【讨论】:

  • 这确实有效,但它在哪里记录了 O.o ?
  • @jave.web 看看variable examples here in the manual,它们涵盖了大部分用例。
  • 好吧,几乎没有显示 {} 用于解决歧义并在 var/index 命名中连接,没有这种情况... x)
【解决方案2】:

其中一个应该可以工作:

{assign var="url" value=$WS_PATH|cat:"aircraft_images/"|cat:$images[i].image}

或者

{assign var="url" value="`$WS_PATH`aircraft_images/`$images[i].image`"}

我不确定 $images[i].image 是否会被正确解析,您可能必须先将其 {assign} 到另一个变量

【讨论】:

  • 第二个更容易阅读和工作(第一个没有)
  • 我认为你不需要多次调用 cat ,简单的 $var|cat:'str1':'str2':....... 对我有用 :)
【解决方案3】:

这样的表达式就可以了:

{$product1_photo = "{$smarty.const.IMG_URL}/{$pInfo.PhotoName}"}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 2011-07-15
    相关资源
    最近更新 更多