ThinkPHP6.0ビュー



ThinkPHP6 View

  • テンプレート エンジンは、通常のタグXML タグの 2 つの方法をサポートしています。タグの定義。それぞれ異なる目的に使用されます。

タグの種類説明
通常のタグ は主に変数の出力、関数のフィルタリング、およびいくつかの基本的な操作を行うために使用されます
XML タグ はタグ ライブラリ タグとも呼ばれます。主に論理的な判断、制御、ループ出力を完了し、拡張可能です。

1. 演算子

##包括的な演算{$a $b*10 $c}##三項演算子
演算子
{$a $b}
- { $a-$b}
*{$a*$b}
#/ {$a/$b}
%{$a%$b}
{$a } または { $a}
--{$a--} または {--$a}
{$a ==$b ? 'はい・いいえ'}############

コントローラファイル

パブリック関数index(){

View::assign('a',100);

View::assign(' b',21);

return View::fetch();

}

ファイルを表示

<div> ;{$a $b}</div>

<div>{$a-$b}</div>

<div>{$a*$b }</div>

<div>{$a/$b}</div>

<div>{$a%$b}</div>

<div>{$a }</div>

<div>{ $a}</div>

<div>{$ a--}</div>

<div>{--$a}</div>

<div>{$c ? '存在します' : 'いいえExists'}</div>

2. テンプレート関数

#date日付の書式設定 (さまざまな時刻タイプをサポート)format文字列の書式設定upper大文字に変換下位小文字に変換##first配列の最初の要素を出力しますlast配列の最後の要素を出力しますデフォルトデフォルト値raw(デフォルト)エスケープを使用しない md5md5 暗号化substrインターセプト文字列
  • 複数の関数を呼び出すことができます

コントローラー ファイル

パブリック関数 Index(){

表示: :assign('time',1576048640);

View::assign('num',10.0032);

View::assign('str','OUyangKE');

View::assign('arr',[

'朱さん',

'欧陽柯',

'西門大関人'

]);

return View::fetch();

}

ファイルを表示

< div> ;{$time|date='Y-m-d H:i:s'}</div>

<div>{$num|format=' d'}</div>

<div>{$str|upper}</div>

<div>{$str| lower}</div>

<div> {$ arr|first}</div>

<div>{$arr|last}</div>

<div>{$default|default="欧陽グラム" }</div>

<div>{$str|substr=0,3}</div>

<div>{$str|md5}</ div>

<div>{$str| lower|substr=0,3}</div>

3. ループタグ

  • foreach タグの使用法は、配列またはオブジェクトのプロパティをループするために使用される PHP 構文に非常に似ています

コントローラーファイル

public function index(){

$ arr = [

=&gt; 'ouyang ke'

]、

'id' => 'name' => '朱先生 '

],

'id' => 3,

'name' => '西门大官人'

]

];

View::assign('arr',$arr);

return View::fetch();

}

view file

{foreach $arr as $v}

< div>

<スパン>ID:{$v['id']}</span>

<スパン>名前: {$v['name']}< ;/span>

</div>;

{/foreach}

4. Volist ループ タグ

  • 2 次元配列の結果出力

  • name テンプレートによって割り当てられた変数名

  • id ​​現在のループ変数には任意の名前を付けることができます

  • key 1 から始まる添え字 開始、デフォルト変数 i

  • offset 開始行番号

  • length get 行番号

  • empty データが空の場合は、このテキストを表示します。

view file

{volist name="arr" id="v" key ="k" offset= "1" length="2"}

<div>

<span>ID: {$v['id']}</span> ;

# <span>名前: {$v['name']}</span>

;/div>

{/volist}

5. if 判定タグ

    if
  • タグの使い方 PHP の構文に非常に近く、条件判定に使用されます

    ##コントローラー ファイル

パブリック関数 Index(){

View::assign( 'status',1);

View::assign( 'order_status',4);

return View::fetch();

}

ファイルを表示

{if $status == 1}

<div>開く</div>

{/if}

##{if $status = = 0}

<div>閉じる</div>

{else/}

<div>開く</div>

{ /if}

##{if $order_status == 0}

<div>未払い</div>


{elseif $order_status == 1/}

<div>配送料支払い済み</div>

{elseif $order_status == 2/}

<div>配送済み、待機中領収書</div>

{elseif $order_status == 3/ }

<div>商品は保留中のコメントを受け取りました</div>

{elseif $order_status == 4/}

<div>完了< /div>

{/if}

6. 判定タグの切り替え

switch

タグの使用法と PHP 構文は非常に似ており、条件判断に使用されます

  • ファイルを表示

    {switch $ order_status}
{case 0}<div>未払い</div>{/case}

{case 1}<div>支払い済みの保留中の配送</div>{/case}

{ケース 2 }

{ケース 4}<div>完了</div>{/case}

{/switch}

7. ファイルをインクルードします

  • include タグ、インポートテンプレートファイル

  • タグを読み込み、リソースファイル (css、js) を導入

ファイルを表示し、ヘッダーとテール部分ファイル

#{include file="public/header" /}

{include file="public/left" /}


#{load href="/static/layui/css/layui.css" /}

{load href="/static/layui/layui.js" /}


{include file="public/tail" /}

8. その他のタグ

1. 条件付きタグ

メソッド説明
#タグinnotinbetween notbetween present notpresent 空 notempty define #未定義 #

public function index(){
    View::assign('number',100);
    View::assign('string','');
    return View::fetch();
}
{in name="number" value="99,100,101"}
    number等于99,100,101任意一个值
{/in}
{notin name="number" value="99,100,101"}
    number不等于99,100,101任意一个值
{/notin}
{between name="number" value="1,10"}
    number等于1 到 10 之间的任意一个值
{/between}
{notbetween name="number" value="1,10"}
    number不等于1 到 10 之间的任意一个值
{/notbetween}
{present name="number"}
    number已经定义
{/present}
{notpresent name="n"}
    n还没有定义
{/notpresent}
{empty name="string"}
    name为空值
{/empty}
{notempty name="string"}
    name有值
{/notempty}
{defined name="NAME"}
    NAME常量已经定义
{/defined}
{notdefined name="NAME"}
    NAME常量未定义
{/notdefined}

2. タグの比較

説明
変数に特定の値があるかどうかを判断する
特定の値を持つ変数が存在しないかどうかを判断する
特定の値を持つ変数が存在するかどうかを判断する
変数が特定の範囲の値に存在しないかどうかを判断します
変数が定義されているかどうかを判断します
変数が未定義かどうかを判断します
変数が未定義であるかどうかを判断する Is empty
変数が空でないかどうかを判断する
変数が空かどうかの判定 定数が定義されているかどうかの判定
定数が未定義かどうかの判定
##TagDescriptioneq は neq と等しくない は gt と等しくない## より大きい #egt lt #elt 以下heq 常に等しい 必ずしも
public function index(){
    View::assign("number",100);
    View::assign("string","欧阳克");
    return View::fetch();
}
{eq name="number" value="100"}
    number 等于 100
{/eq}
{neq name="number" value="101"}
    number 不等于 101
{/neq}
{gt name="number" value="33"}
    number 大于 33
{/gt}
{egt name="number" value="100"}
    number 大于等于 100
{/egt}
{lt name="number" value="200"}
    number 小于 200
{/lt}
{elt name="number" value="100"}
    number 小于等于 100
{/elt}
{heq name="string" value="欧阳克"}
    string 恒等于 欧阳克
{/heq}
{heq name="string" value="朱老师"}
    string 恒不等于 朱老师
{/heq}
3 と等しいとは限りません。ループ タグ
以上 ## より小さい
##nheq

##タグ

説明forカウントループstart: 開始値
  • end: 終了値

  • step: ステップ値、デフォルト 1

  • name: ループ変数名、デフォルト i

  • {for start="1" end="50" step="5" name="i"}
        {$i}<br/>
    {/for}
  • 4、その他のタグ

##Tag

説明
リテラルそのまま出力
php ネイティブphpコードを使用# ##################################
{literal}
    {$name} 这里$name不会被当作变量,而是普通字符
    {/literal}
    {php}
    echo '欧阳克';
    {/php}

9. 例

コントローラー コード

名前空間 app\controller;

use think\facade\View;

class Index {

public functionindex(){

$title = 'Mall';

$login = '欧陽柯';

$left = [

[

# 'タイトル' = & GT; '製品管理',

'リスト 'id' => 1,

'id' = & gt; 2,

'タイトル' = & gt; '商品分類',

/

##]

##],

## [

'タイトル' = & gt; 'ユーザー管理',

'リスト' = & gt; [

[

'ID' = & gt; 3、

# 'id' =&gt; 4、

'title' =&gt; title '=&gt;'ユーザーアドレス '、

to gt; 'Order Management'、

]

;]、#

##]、

##[

# ' id '=&gt; 9、

' title '=&gt;

## > 6,

'status' =&gt; 1、

## // 'status' =&gt;

### 'title' =&gt; 'qiushui yiren両面ウール冬服2019 New Women's服の気質 スーツの襟 対照的な色のウール コート ジャケット 女性用',

'猫' => '婦人服',

'価格' => 699,

'割引' => 7,

'ステータス' => 1,

// 'ステータス' => 'オープン',

'add_time' = > '2019-12-12',

out out out through out through '''''-'''-‐‐‐ps' ',

## [

'ID' = & GT; 3,

## 'タイトル' = & GT; '猫' => '紳士服',

'価格' => ; 179,

'割引' => 8,

'ステータス' => 0; '= & gt;' 1576080000 '

],

[

' ID '= & GT; 1,

##' Title '= & GT; 長袖Tシャツ、秋物ラウンドネック、白黒Tシャツ、無地カラートップス、ボトムシャツ',

'猫' => '男装',

'price' => 99,

'割引' => 9,

'ステータス' => 1,

// 'ステータス' => '开启',

'add_time' => '2019-12-12',

// 'add_time' => '1576080000'

],

];

View::assign([

'title' => $title,

'login' => $login,

'left' => $left,

'right' => $right

]);

return View::fetch();

}

##}

view代:head.html

#<!DOCTYPE html>


<html>

<head>

<title>{$title}--后台管理系统< ;/title>

<link rel="stylesheet" type="text/css" href="/static/layui/css/layui.css">

<script type="text/javascript" src="/static/layui/layui.js"></script>

<style type="text/css">

.header{width:100%;height:50px;line-height:50px;background:#2e6da4;color:#ffffff;}

.title{margin-left: 20px;font-size: 20px; }

.userinfo{float: right;margin-right: 10px;}

.userinfo a{color:#ffffff;}

.menu{width: 200px;背景:#333744;位置:絶対;}

.main{位置: 絶対;左:200px;右:0px;}


.layui-崩壊{border: none;}

.layui-colla-item{border-top:none;}

.layui-colla-title{background:#42485b;color:#ffffff; }

.layui-colla-content{border-top:none;padding:0px;}


.content span{background: #009688;margin -left: 30px;padding: 10px;color:#ffffff;}

.content div{border-bottom: Solid 2px #009688;margin-top: 8px;}

.content button{float: right;margin-top: -5px;}

</style>

</head>

<body> ;

<div class="header">

<span class="title"><span style="font-size: 20px;">{$ title}</span>--后台管理系统</span>

<span class="userinfo">【{$login}】<span><a href="javascript :;">退出</a></span></span>

</div>

view代:left.html

<div class="menu" id="menu">

<div class="layui-collapse"lay-accordion>

{foreach $left as $k=>$left_v}

<div class="layui-colla-item">

<h2 class="layui-colla-title ">{$left_v.title}</h2>

<div class="layui-colla-content {if $k==0}layui-show{/if}">

<ul class="layui-navlayui-nav-tree">

{foreach $left_v['lists'] as $lists_v}

<li class="layui-nav-item"><a href="index.html">{$lists_v.title}</a></li>

{/foreach}

</ul>

</div>

</div>

{/foreach}

< /div>

;

表示番号:bottom.html

</body>

</html>

<script>

layui.use(['element','layer','laypage'], function(){

var element =layui.element;

varlaypage =layui.laypage;

$ =layui.jquery;

layer =layui.layer;

resetMenuHeight();

}) ;

// 再設置菜单容器の高さ

function replaceMenuHeight(){

var height = document.documentElement.clientHeight - 50;

$( '#menu').height(height);

}

</script>

view代:index.html

{include file="public/head" /}

{include file="public/left" /}

<div class="main" style= "padding:10px;">

<div class="content">

<span>商品列表</span>

<div> ;</div>

</div>

#;/th&gt;

#/th&gt;

#;

####&lt; td&gt; {$ right_v .cat}&lt;/td&gt;

#カウント/10)}

&lt;/td&gt;

<td>{$right_v.stock}</td>

<td>{if $right_v['status']==1}开启{else/}关闭{/if }</td>

<td>{$right_v.add_time|date='Y-m-d'}</td>

</tr>

{/volist}

</tbody>

</table>

</div>

{include file=" public/bottom" /}