Vue ThinkPHP6.0



Vue ThinkPHP6

  • Le moteur de modèles prend en charge 普通标签XML标签deux méthodes de définition de balises, qui sont utilisées à des fins différentes

Type de baliseDescription
Balises normales pour les variables de sortie , le filtrage des fonctions et certaines opérations de base
Les balises XML sont également appelées balises de bibliothèque de balises, qui complètent principalement certains jugements logiques, le contrôle et la sortie de boucle, et sont extensibles

1. Opérateurs

OpérateurExemple
+{$a+$b}
-{$a-$b}
*{$a*$ b}
/ {$a/$b}
%{$a%$b}
++{$a++} ou {++$a}
-- {$a--} ou {--$a}
Opération complète{$a+$b*10+$c}
Opérateur ternaire{$a ==$b ? ' : 'non'}

fichier du contrôleur

public function index(){

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

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

return View::fetch();

}

afficher le fichier

<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 'Existe' : 'N'existe pas'}</div>

2. Fonction modèle

Méthode Description
dateFormatage de la date (prend en charge différents types d'heure)
formatFormatage de chaîne
upperconvertir en majuscules
inférieur Convertir produit le premier élément du tableau en minuscules
premier Utiliser (par défaut) Escape
md5cryptage md5
substrIntercepter la chaîne
  • Peut appeler plusieurs fonctions

fichier du contrôleur

public function index(){

View::assign('time',1576048640);

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

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

View::assign('arr',[

'Professeur Zhu',

'Ouyang Ke',

'Ximen Daguanren'

]);

return View::fetch();

}

view file

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

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

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

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

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

<div>{$default| "Ouyang Ke"}</div>

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

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

3. Balise de boucle

L'utilisation de la balise est très proche de la syntaxe PHP, qui est utilisée pour boucler la sortie. propriétés du tableau ou de l'objet
  • foreach fichier du contrôleur

index de fonction publique(){

​ $arr = [

​​​​​​​ name' => 'Ouyang Ke'

                                                                                                                                                                                                                                                                    => ; 'Ximen Official'

]

{foreach $arr as $v}

                                                                         'name ']}</span>

</div>

{/foreach}

4. volist loop label

  • Le résultat du tableau à deux dimensions

  • name Le nom de la variable de l'affectation du modèle

  • id La variable de boucle actuelle peut soyez nommé comme vous le souhaitez

  • indice clé, à partir de 1, variable par défaut i

  • décalage du numéro de ligne de départ

  • longueur obtenir le numéro de ligne

  • vide Si les données sont vides, affichez ce texte

afficher le fichier

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

<div>

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

                                                                                                                                            ;/div>

{/volist}

5. très proche de la syntaxe PHP, utilisée pour le jugement conditionnel

fichier contrôleur

  • public function index(){

    if 标签的用法和PHP语法非常接近,用于条件判断

controller文件

public function index(){

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

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

    return View::fetch();

}

view文件

{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}

六、switch 判断标签

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

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

return View::fetch();

}

afficher le fichier

{if $status == 1}

<div>Open</div>

{/if}

🎜
🎜🎜{if $status == 0}🎜 🎜 <div>off</div>🎜🎜{else/}🎜🎜 <div>on</div>🎜🎜{/if}🎜 🎜
🎜🎜{if $order_status == 0 }🎜🎜 <div>Non payé</div>🎜🎜{elseif $order_status == 1/}🎜🎜 <div>Payé pour l'expédition</div> ;🎜🎜{elseif $order_status == 2 /}🎜🎜     <div> Expédié et en attente de réception</div>🎜🎜{elseif $order_status == 3/}🎜🎜     <div> ;🎜🎜{elseif $order_status == 4/}🎜🎜 <div>Complete</div>🎜🎜{/if}🎜🎜🎜 6. Changer la balise de jugement🎜🎜🎜🎜switch tag utilisation et La syntaxe PHP est très proche, utilisée pour le jugement conditionnel🎜🎜🎜🎜view file🎜🎜🎜{switch $order_status}🎜🎜 {case 0}<div>Unpaid</div>{/case}🎜🎜 {case 1} <div>Payé et en attente de livraison</div>{/case}🎜🎜 {case 2 }<div>A été expédié et en attente de réception</div>{/case}🎜🎜 {case 3 }< ; div>Reçu et en attente de commentaire</div>{/case}🎜🎜 {cas 4}<div>Terminé</div>{/case}

{/switch}

7. Inclure les fichiers

  • balise include , introduire le fichier modèle include 标签,引入模版文件

  • load

balise load , introduire les fichiers de ressources (css, js)

afficher les fichiers, mettre les fichiers d'en-tête et de queue

{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" /}

Huit. Autres balises1. Balises conditionnelles tag descriptioninJuge si une variable a certaines valeursnotinJugez le variable Si certaines valeurs n'existent pas entre Déterminer si une variable existe certaines valeurs pas entre Déterminer si une variable n'existe pas certaines valeurs de plage présentes Déterminer si une variable a été définie non présente Juge si une variable est indéfinievide Juge si une variable est videnonvide Juge si une variable n'est pas videdéfini Déterminer si une constante est définienon définie Déterminer si une constante est indéfinie
🎜🎜🎜

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. Comparez les tags

tag description
eq est égal à
neq n'est pas égal à
gt est supérieur à
egt est supérieur à Égal à
lt est inférieur à
elt inférieur ou égal à
heq constamment égal à
nheq non constante

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. Étiquette de boucle

étiquette description
pour boucle de comptage
  • start : valeur de départ

  • end : valeur de fin

  • step : valeur du pas, par défaut 1

  • name : nom de la variable de boucle, par défaut i

{for start="1" end="50" step="5" name="i"}
    {$i}<br/>
{/for}

4, balises diverses

tag description
littéralsortie en tant que is
php Utiliser le code php natif
{literal}
    {$name} 这里$name不会被当作变量,而是普通字符
    {/literal}
    {php}
    echo '欧阳克';
    {/php}

9. Exemple

code du contrôleur

contrôleur d'application d'espace de noms;

utilisez thinkfacadeView;

index de classe{

​ public function index(){

​​ $title = 'Mall';

​ $login​ = 'Ouyang Ke';

                                                                                                                                                                                                                                    ' => 'Liste de produits',                                                                                                                                                                                                                                                                                            

                                                .                                                                                                                                                                                                   'id' =>

                                                                                                              'titre' => 'Panier',

                                                                                                                              'titre'

               'titre' => 'Adresse de l'utilisateur',

                                                                                                                 'title' => 'Gestion des commandes',

                                                                                                   'titre' => 'Gestion de l'arrière-plan', '' listes' = & gt; [

'id' = & gt; 'titre' = & gt; 'id' => 8,

" "                                     'id' => Colonne',

                                                                                                                                                                                                                                                                                                           Pire pire n'a pas été plus Manches abricot haut à capuche ample brodé littéraire manches tombantes sweat-shirt épais style BF',         ' cat' => 'Vêtements pour femmes',

              'prix' => 189,

                           'remise' >

                   'statut' =>                              // 'add_time' => ' 1576080000'

                                                                                                                                                                  Vêtements d'hiver en laine double face 2019 nouveaux vêtements pour femmes col de costume de tempérament veste de manteau en laine de couleur contrastée pour les femmes',

'cat' => Vêtements pour femmes',

'prix' => 699,

'remise' => 7,

'statut' => 1,

                         // 'statut' => sur',

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

                                                                                

                                                                                                                                                                                  ,,, 'Title' = & GT; ' = & gt; vêtements pour hommes',

'prix' = & gt; 179,

'remise' = & gt; 8. t 'STATUT' = & GT;

// 'STATUT' = & GT; ,

'add_time' = & gt; '1576080000'

                                                                                                                                                                          T-shirt homme manches longues automne col rond noir et blanc hauts et chemises de couleur unie,

                'chat' => '男装',

                'prix' => 99,

                'remise' => 9,

                'statut' => 1,

                // 'statut' => '开启',

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

                // 'add_time' => '1576080000'

            ],

        ];

        View::assign([

            'title'  => $title,

           'connexion' => $login,

            'gauche' => gauche,

            '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- gauche : 20 px; taille de la police : 20 px;}

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

        .userinfo a{color:#ffffff;}

        .menu{largeur : 200px;arrière-plan : #333744;position:absolute;}

        .main{position: absolue;left:200px;right:0px;}


        .layui-collapse{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 bouton{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-nav layui-nav- tree">

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

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

                        {/foreach}

                    </ul>

                </div& gt;

            </div>

        {/foreach}

    < /div>

</div>

view代码:bottom.html

</body>

</html>

<script>

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

        var element = layui.element;

        var laypage = layui.laypage;

        $ = layui.jquery;

        layer = layui.layer;

     réinitialiserMenuHauteur();

    }) ;

    // 重新设置菜单容器高度

    function resetMenuHeight(){

        var height = document.documentElement.clientHeight - 50;

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

    }

</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>Titre du produit< ;/th> ;

                                                                             t;

                                                                                                                   

                                                                                            

                                                                                                       </tr>

                                                                                          gt;{$right_v.id}</td>

                  <td> $right_v.title}</td>

                                                                                                gt;

                                                   ;{$right_v.discount}</td>

                                                                                                                                                                autre/}

                                                                                                                                                                 

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

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

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

                </tr>

            {/volist }

        </tbody>

    </ table>

</div>

{include file="public/bottom" /}