我想在Yii中使用SmartyViewRendere。我根据使用Smarty和Yii的说明完成了所有设置。
在我的应用程序中,我想渲染一个名为widgets_sidebar_template.tpl的模板
<h1>Widgets bewerken voor Sidebar #<?php echo $model->id; ?></h1>
<?php $this->render('widgets_sidebar_template', array(
'available_widgets'=>$available_widgets
)
) ?>
这很好用。
然后是widgets_sidebar_template.tpl文件:
$smarty->assign('availables', $available_widgets);
?>
<article id="widgets_container">
<ul id="available_widgets" class="connect">
<span>Beschikbaar</span><br><br>
{foreach from=$availables key=k item=available}
<li>{$available}</li>
{/foreach}
</ul>
<ul id="active_widgets" class="connect">
<span>Actief</span><br><br>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</article>
此文件提供错误
Undefined index: availables
所以我要做的第一件事是我需要确保$ available_widgets是一个数组。所以我想出来了,我100%肯定它是一个包含数据的数组。然后我检查$ available_widgets是否实际分配给'availables'($ availables),所以我删除了:
$smarty->assign..
这给了我同样的错误,所以我的猜测是我在分配'availables'smarty数组时做错了。
我希望你们其中一个人可以根据这个英特尔给我一些建议。感谢:)
答案 0 :(得分:1)
您无法在智能模板中使用$smarty->assign
。此外,PHP标签在Smarty模板中不起作用。
我猜你在谈论这个SmartyRenderer:https://github.com/yiiext/smarty-renderer
最新版本需要Smarty版本3或更高版本,它可能不适用于Smarty 2。
对于您的模板,您可以使用以下语法在Smarty中分配变量值:
{$availables=$available_widgets}
在您的示例中,您甚至可以在foreach循环中使用$available_widgets
。