Thinkphpにおけるvolistタグの使い方紹介

3267 ワード

通常、volistタグはデータセットの結果出力を照会するために用いられることが多く、通常モデルのselect方法で返される結果は2次元配列であり、これに対して直接にvolistタグを用いて出力することができる。
コントローラでは、まずテンプレートに対して値を割り当てます。

$User = M('User');
$list = $User->limit(10)->select();
$this->assign('list',$list);
テンプレートでは次のように定義されています。

<volist name="list" id="vo">
{$vo.id}:{$vo.name}<br/>
</volist>
Volistタグのname属性はテンプレートの変数名を表していますので、テンプレートファイルで勝手に変更することはできません。IDは現在の循環変数を表し、任意に指定できますが、name属性と競合しないように確保する必要があります。

<volist name="list" id="data">
{$data.id}:{$data.name}<br/>
</volist>
クエリー結果の一部データの出力をサポートします。例えば、その中の第5~15条のレコードを出力します。

<volist name="list" id="vo" offset="5" length='10'>
{$vo.name}
</volist>
出力偶数レコード:

<volist name="list" id="vo" mod="2" >
<eq name="mod" value="1">
{$vo.name}
</eq>
</volist>
Mod属性は、特定のレコードの改行を制御するためにも使用されます。例えば、

<volist name="list" id="vo" mod="5" >
{$vo.name}
<eq name="mod" value="4"><br/></eq>
</volist>
空の場合はヒントを出力します。

<volist name="list" id="vo" empty="      " >
{$vo.id}|{$vo.name}
</volist>
empty属性は、直接にhtml文法に入ることをサポートしていませんが、変数出力をサポートすることができます。

$this->assign('empty','<span class="empty">    </span>');
$this->assign('list',$list);
テンプレートで使用します。

<volist name="list" id="vo" empty="$empty" >
{$vo.id}|{$vo.name}
</volist>
出力サイクル変数:

<volist name="list" id="vo" key="k" >
{$k}.{$vo.name}
</volist>
key属性が指定されていない場合は、デフォルトではサイクル変数iを使用します。

<volist name="list" id="vo" >
{$i}.{$vo.name}
</volist>
配列のインデックスを出力する場合は、直接key変数を使用することができますが、ループ変数とは異なり、このkeyは、ループ制御ではなく、データ自体によって決定されます。

<volist name="list" id="vo" >
{$key}.{$vo.name}
</volist>
テンプレートでは、データセットを直接関数で設定することができます。たとえば、コントローラでテンプレート変数の値を入力する必要はありません。

<volist name=":fun('arg')" id="vo">
{$vo.name}
</volist>
もっと多くのthinkPHPに関する内容に興味がある読者は、当駅のテーマを調べてもいいです。「ThinkPHP入門教程」、「thinkPHPテンプレート操作技術のまとめ」、「ThinkPHP常用方法まとめ」、「smartyテンプレート入門基礎教程」および「PHPテンプレート技術まとめ」。
本論文で述べたいのですが、ThinkPHPフレームに基づくPHPプログラムの設計に役立ちます。