【问题标题】:Smarty concat and use as a variableSmarty concat 并用作变量
【发布时间】:2012-11-03 10:09:54
【问题描述】:

在 PHP 文件中,我正在运行一个循环,并在其中为 smarty 分配一个变量。

PHP 代码:

foreach($pindata as $Idx => $Val)
{
    $pinId = $Val['id'];
    $sql = mysql_query("select count(userID) as users from pinrest_supporters where pin_id = $pinId;");
    $contributorsSql = mysql_fetch_assoc($sql);
    $contributors = $contributorsSql['users'];
    $smarty->assign("contributors$pinId", $contributors);

}

所以 smarty 中分配的值是contributors1038contributors1039 等等。

现在我的问题是我想在 smarty 中动态使用这些分配的变量。

在 smarty 模板文件中,如果我写 {$contributors1038},那么我会得到正确的输出为 9。但我想动态使用它。 1038 是 ID,我的模板中有它。如果我尝试连接两个不同的变量并期待结果,我就失败了:P

我试过了:

{assign var='contri' value="contributors"|cat:$results[res].id}

但是上面的变量{$contri} 给了我作为contributors1038

的结果

我想通过连接两个不同的变量来创建一个新变量,但这使它成为字符串。那么有人可以帮助我吗?

【问题讨论】:

  • 尝试在assign 中使用value=$contributors,也许这会起作用。
  • 当我尝试这样的事情{assign var='contri' value=$contributors|cat:$results[res].id} 然后我只是得到ID,即1048

标签: php smarty concatenation


【解决方案1】:

如果你的唯一目的是输出数据,你可以这样尝试

{$contributors}{$results[res].id}

【讨论】:

  • @ntechi 你得到了什么??
  • 只有ID,因为$contributors没有变量,所有变量都是$contributors1038$contributors1039
【解决方案2】:

好吧,尝试不同的解决方案我已经筋疲力尽了,所以最后我这样做是为了实现我的目标。

而不是下面的代码 PHP

$contributors = $contributorsSql['users'];
$smarty->assign("contributors$pinId", $contributors);

我将 smarty 变量设为数组

PHP

$contributors[$pinId] = $contributorsSql['users'];
$smarty->assign("contributors", $contributors);

在 smarty 中我称之为

聪明:

{$contributed[$results[res].id]}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 2011-05-04
    • 2011-05-29
    • 2013-06-30
    • 1970-01-01
    相关资源
    最近更新 更多