2

Yii で SmartyViewRendere を使用しようとしています。Yii で Smarty を使用するための指示に従って、すべてをセットアップしました。

私のアプリケーションでは、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 配列の割り当てに何か問題があると思います。

この情報に基づいて、あなたの誰かが私にさらにアドバイスをくれることを願っています。ありがとう:)

4

1 に答える 1

1

$smarty->assignスマートテンプレートでは使用できません。また、PHPタグはSmartyテンプレート内では機能しません。あなたはこのSmartyRendererについて話していると思います:https ://github.com/yiiext/smarty-renderer

最新バージョンにはSmartyバージョン3以降が必要です。Smarty2では動作しない可能性があります。

テンプレートでは、次の構文を使用してSmartyで変数値を割り当てることができます。

{$availables=$available_widgets}

あなたの例$available_widgetsでは、foreachループで使用することもできます。

于 2012-12-07T16:58:44.650 に答える