Php 尝试使用SmartyViewRenderer在Yii中模板化视图文件

Php 尝试使用SmartyViewRenderer在Yii中模板化视图文件,php,yii,smarty,Php,Yii,Smarty,我正在尝试在Yii中使用SmartyViewRendere。我按照使用Smarty with Yii的说明进行了所有设置 在我的应用程序中,我想呈现一个名为widgets_sidebar_template.tpl的模板 <h1>Widgets bewerken voor Sidebar #<?php echo $model->id; ?></h1> <?php $this->render('widgets_sidebar_template',

我正在尝试在Yii中使用SmartyViewRendere。我按照使用Smarty with 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
    )
) ?>
所以我想到的第一件事是,我需要确保$available\u widgets是一个数组。所以我想出来了,我100%确定这是一个包含数据的数组。然后我检查$available_小部件是否实际分配给了'availables'($availables),因此我删除了:

$smarty->assign..
这给了我和以前一样的错误,所以我猜我在分配'availables'smarty数组时出错了


我希望你们中的一个人能根据这个情报给我更多的建议。谢谢:)

您不能在smarty模板中使用
$smarty->assign
。此外,PHP标记在Smarty模板中也不起作用。 我猜你说的是这个聪明人:

最新版本需要Smarty版本3或更高版本,可能无法与Smarty 2一起使用

对于模板,可以使用以下语法在Smarty中指定变量值:

{$availables=$available_widgets}

在您的示例中,您甚至可以在foreach循环中使用
$available\u widgets

出于好奇,您有什么特别的原因想将smarty与Yii一起使用吗?在我的项目中,通过render方法发送大量数据,您的视图变得更具可读性
$smarty->assign..
{$availables=$available_widgets}