ホームページ >バックエンド開発 >PHPチュートリアル >Thinkphp の volist タグのネストされたループの使用

Thinkphp の volist タグのネストされたループの使用

不言
不言オリジナル
2018-06-06 16:23:562061ブラウズ

この記事では主に ThinkPHP で volist タグのネストループを実装する方法を紹介します。必要な方は参考にしてください。

この記事では ThinkPHP での volist タグのネストの使用法を以下のように詳しく説明します。 Thinkphp 開発マニュアル には、3da5ee660f26a047cce0b9503e43e613 タグのネストについての説明があります。以下の通り:

タグのネスト:

テンプレート エンジンはタグのマルチレベル ネスト機能をサポートしており、タグ ライブラリ内のタグをネストできるかどうかを指定できます。

システムの組み込みタグの中には、volist (およびそのエイリアス反復)、switch、if、elseif、else、foreach、compare (すべての比較タグを含む)、(not) present、(not) empty、(not) があります。定義されたタグとその他のタグはすべてネストして使用できます。例:

<volist name="list" id="vo">
<volist name="vo[&#39;sub&#39;]" id="sub">
{$sub.name}
</volist>
</volist>

上記のタグは、二重ループを出力するために使用できます。

デフォルトのネストレベルは 3 レベルなので、さらに多くのレベルが必要な場合は、TAG_NESTED_LEVEL 構成パラメータを指定できます。

しかし、アクションでは「リスト」に正確にどのように値を割り当てる必要があるのでしょうか?説明からわかるように、list は 2 次元配列である必要があります。以下はテスト後に使用できるテスト コードです。

$Baojia=new Model(&#39;baojia&#39;);
$Class=new Model(&#39;class&#39;);
$parent=$Class->select();   
foreach($parent as $n=> $val){
$parent[$n][&#39;voo&#39;]=$Baojia->where(&#39;belongto=\&#39;&#39;.$val[&#39;name&#39;].&#39;\&#39;&#39;)->select();
}
$this->assign(&#39;list&#39;,$parent);
<volist name="list" id="vo">
    {$vo.name}<BR>
<volist name="vo[&#39;voo&#39;]" id="sub">
 {$sub.name}
</volist><BR>
</volist>
データベースには 2 つのテーブルが定義されており、1 つは見積テーブル、もう 1 つは分類テーブルであり、各分類の下に各モデルの見積が表示されます。

コードの主な機能は次のとおりです:

1. まずモデルを作成します:

$Baojia=new Model(&#39;baojia&#39;);
$Class=new Model(&#39;class&#39;);

2. 次に、データベース クエリが 2 つの形式でデータを返すことがわかっているため、このステップは非常に重要です。単一のデータを取り出すことは、データの各行を読み取ることと同じです。 3da5ee660f26a047cce0b9503e43e613 を呼び出すと、thinkphp バックグラウンドはデータの各行を自動的に読み取ります。

$parent=$Class->select();

引用符内のデータを $parent に保存します。ここで、$n は $parent 配列のシリアル番号であり、$parent に格納されているデータ テーブルに相当します。各行には、そのデータを指すインデックスが追加されます。引用はこのカテゴリに属します。

foreach($parent as $n=> $val){
$parent[$n][&#39;voo&#39;]=$Baojia->where(&#39;belongto=\&#39;&#39;.$val[&#39;name&#39;].&#39;\&#39;&#39;)->select();   
}

3.最後に:

$this->assign(&#39;list&#39;,$parent);

出力を表示します。

このプログラムを通じて、3da5ee660f26a047cce0b9503e43e613 タグについてより深く理解することができます。実際、データベース操作中に、3da5ee660f26a047cce0b9503e43e613 タグの名前はデータベース テーブル タイプにのみ割り当てることができます。データベース クエリはデータ自体が配列型であるため、ビュー ページで 3da5ee660f26a047cce0b9503e43e613 タグを呼び出すときは、各レイヤーの名前が配列型である必要があることに常に注意してください。このプログラムと同様に、最後の外部層、2c7953a8f6f793cfefe6eaa0b0257de7 ここのリストは、最初に定義した $parent です。この変数は、クラスのクエリによって取得されたデータ テーブルを指します。内部層 6cc46cb94ad56cc5a40009e49e22eac9。これは、対応する $parent[$n]['voo'] によってポイントされるデータ テーブルです。見積表のデータ。

この分析を通じて、1 つの例から推測することでロジックが非常に明確になります。もちろん、

さらに多くのレベルが必要な場合は、TAG_NESTED_LEVEL 構成パラメーターを指定できます。

この場合、次のような複数のサイクルを実現できます: 国->省->都市->郡->郡区


関連推奨事項:

thinkPHP の Html テンプレート タグの使用方法


thinkPHPで実装した道市の3段階連携機能の例


ThinkPHPテンプレート判定出力 空タグの使い方

以上がThinkphp の volist タグのネストされたループの使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。