2

我正在尝试在 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..

这给了我同样的错误,所以我的猜测是我在分配“可用”smarty 数组时做错了。

我希望你们中的一个人可以根据这个intel给我更多的建议。谢谢:)

4

1 回答 1

1

您不能$smarty->assign在 smarty 模板中使用。此外,PHP 标记在 Smarty 模板中也不起作用。我猜你说的是这个 SmartyRenderer:https ://github.com/yiiext/smarty-renderer

最新版本需要 Smarty 版本 3 或更高版本,它可能不适用于 Smarty 2。

对于您的模板,您可以使用以下语法在 Smarty 中分配变量值:

{$availables=$available_widgets}

在您的示例中,您甚至可以只$available_widgets在 foreach 循环中使用。

于 2012-12-07T16:58:44.650 回答