【问题标题】:Smarty echo of array variable with "-" in its name名称中带有“-”的数组变量的 Smarty 回显
【发布时间】:2010-02-16 08:49:29
【问题描述】:

我的变量在 PHP 控制器中看起来像

$data['content']['mods']['HTML-FORM-END']['html']

它在 smarty 中被很好地传递了,但是当我尝试以任何一种方式显示它时,它要么显示 0(假设减号为运算符并进行一些数学运算),要么显示“无法识别的标签”

{$data.content.mods.HTML-FORM-BEGIN.html}
{$data.content.mods['HTML-FORM-BEGIN']['html']}
{$data.content.mods.HTML-FORM-BEGIN.html}
{$data.content.mods.HTML-FORM-BEGIN.html}

如何在不重命名控制器中的数组键的情况下打印它?

【问题讨论】:

  • 今天学习smarty用点访问多维数组。

标签: php smarty


【解决方案1】:

您的示例在您的控制器中引用了“HTML-FORM-END”,但在您的视图中引用了“HTML-FORM-BEGIN”,但我认为这不是您的问题并且两者都存在。这个怎么样?

{$data[content][mods][HTML-FORM-BEGIN][html]}

据我所知,在 Smarty 中进入多维数组的唯一方法似乎是使用循环。也许您可以将数组拆分为控制器中的分配以提供轻松访问:

foreach($data['content']['mods'] as $key => $values) {
  $smarty->assign('content_mods_' . $key, $values['html'];
}

然后您可以像这样在模板中引用它们:

{$content_mods_HTML-FORM-BEGIN}
{$content_mods_HTML-FORM-END}
// etc.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多