我有变量,在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
}
如何在不重命名控制器中的数组键的情况下打印它?
答案 0 :(得分: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.