Blogger Information
Blog 70
fans 4
comment 5
visits 104905
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP:【ThinkPHP】=>视图的XML 标签;请求Request类; 数据库链式操作 ;[博客实战]分类和搜索功能完成;
JiaJieChen
Original
959 people have browsed it

PHP:【ThinkPHP】=>视图的XML 标签;请求Request类; 数据库链式操作 ;[博客实战]分类和搜索功能完成;

一.视图标签

标签类型描述
普通标签主要用于输出变量、函数过滤和做一些基本的运算操作
XML 标签也称为标签库标签,主要完成一些逻辑判断、控制和循环输出,并且可扩展

①普通标签 主要用于输出变量、函数过滤和做一些基本的运算操作

  • 运算符

运算符示例
+{\$a+\$b}
-{\$a-\$b}
*{\$a*\$b}
/{\$a/\$b}
%{\$a%\$b}
++{\$a++} 或 {++\$a}
{\$a—} 或{—\$a}
综合运算{\$a+\$b*10+\$c}
三元运算符{\$a==\$b ? ‘yes’ : ‘no’}


  • 模版函数

方法描述
date日期格式化(支持各种时间类型)
format字符串格式化
upper转换为大写
lower转换为小写
first输出数组的第一个元素
last输出数组的最后一个元素
default默认值
raw不使用(默认)转义
md5md5 加密
substr截取字符串


②XML标签 也称为标签库标签,主要完成一些逻辑判断、控制和循环输出,并且可扩展

  • 循环标签

    • foreach 标签的用法和 PHP 语法非常接近,用于循环输出数组或者对象的属性


    1.  {foreach $arr as $arr_k => $arr_v}

    2.  <p style="color: green">{$arr_k}->{$arr_v['id']}->            {$arr_v['name']}</p>

    3.  {/foreach}

  • volist 循环标签

    • name 模板赋值的变量名称

    • id 当前的循环变量,可以随意起名

    • key 下标,从 1 开始,默认变量 i

    • offset 开始行数

    • length 获取行数

    • empty 如果数据为空,显示此文字

    • 二维数组的结果输出

    {volist name='arr' id='v'}    <p>id={$v['id']}, name = {$v['name']}</p>    {/volist}
    • for循环标签

    标签描述
    for计数循环
    - start:开始值- end:结束值- step:步进值,默认 1- name:循环变量名,默认 i

     {for start='1' end='50' step='6' name='i'}    <p>{$i}</p>    {/for}
    • if 判断标签

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

    {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>    {else/}    <div>已关闭</div>    {/if}
    • switch 判断标签

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

        {switch $order_status}        {case 0 }        <div>未支付</div>        {/case}        {case 1 }        <div>已支付 待发货</div>        {/case}        {case 2 }        <div>已发货 待收货</div>        {/case}        {case 3 }        <div>已收货 待评论</div>        {/case}        {case 4 }        <div>已完成</div>        {/case}        {/switch}  </body>
    • 包含文件

      • include 标签,引入模版文件

      • load 标签,引入资源文件(css、js)

    <!-- 引入公共头部 -->{include file="public/head"/}

    二.请求

    • 请求对象使用门面类( think\facade\Request类负责 )调用

    • 支持 $_GET $_POST $_REQUEST $_SERVER $_SESSION $_COOKIE $_ENV 等系统变量,以及文件上传信息

    ①GET 请求

    • GET实战提交

    ②POST 请求

    • POST实战提交

    ③变量修饰符

    序号修饰符作用
    1s强制转换为字符串类型
    2d强制转换为整型类型
    3b强制转换为布尔类型
    4a强制转换为数组类型
    5f强制转换为浮点类型

    语法:Request::get(‘t/d’)

    ④Request 依赖注入

    public function index2(Request $request)    {        print_r($request->get('t/d'));        return View::fetch();    }

    助手函数

    • input获取输入数据 支持默认值和过滤

    三.数据库链式操作

    • 数据库提供的链式操作方法,可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的 CURD 操作

    • where 查询条件

    $find = Db::table('boke')->where('id',10)->where('status',1)->find();print_r($find);
    • tablename

    $select = Db::name('boke')->select();print_r($select);$select = Db::table('boke')->select();print_r($select);$select = Db::table('boke,cat')->select();print_r($select);$select = Db::table('boke b,cat c')->select();print_r($select);$select = Db::table([    'boke',    'cat'])->select();print_r($select);$select = Db::table([    'boke' => 'b',    'cat' => 'c'])->select();print_r($select);
    • fieldwithoutField 返回值

      • field

        filed 返回指定的字段

      • withoutField

        withoutField 舍去指定的字段

    • order 排序

      • 默认正序

      • asc ASC 正序

      • desc DESC 倒序

    • pagelimit 翻页

      • limit

        limit 是在数据表中取指定的几条数据

      • page

        page 是在数据表中取翻页数据,第一个值是页数,第二个值是设置一页有几条数据

    四.[博客实战]分类和搜索功能完成;

    • * 标识的表示支持多次调用

    连贯操作作用支持的参数类型
    where*用于 AND 查询字符串、数组和对象
    table用于定义要操作的数据表名称字符串和数组
    name用于定义要操作的数据表名称字符串
    field*用于定义要查询的字段(支持字段排除)字符串和数组
    order*用于对结果排序字符串和数组
    limit用于限制查询结果数量字符串和数字
    page用于查询分页(内部会转换成 limit)字符串和数字
    • 博客实战

    ThinkPHP代码块

    public function index()    {           //查询文章和导航相对应绑定的值        $id = Request::get('id',0);        //查询搜索值        $t = Request::get('t');        //查询翻页值        $p = Request::get('p',1);        if (isset($id) && !empty($id)) {            //查询分类文章            $count = Db::table('boke')->where('status',1)->where('cat',$id)->count();            $boke = Db::table('boke')            ->where('status',1)            ->where("cat",$id)            ->page($p,10)            ->order('date DESC')            ->select();        }else if (isset($t) && !empty($t)){            //查询搜索文章            $count = Db::table('boke')->where('status',1)->where('title',$t)->count();            $boke = Db::table('boke')            ->where('status',1)            ->where('title',$t)            ->page($p,10)            ->order('date DESC')            ->select();        }else {            //查询全部文章            $count = Db::table('boke')->where('status',1)->count();            $boke = Db::table('boke')            ->where('status',1)            ->page($p,10)            ->order('date DESC')            ->select();        }        //查询导航字段        $cat = Db::table('cat')                ->where('status',1)                ->order('sort DESC')                ->select();        //查询热门文章        $TopArticle = Db::table('boke')                    ->where('status',1)                    ->order('num DESC')                    ->limit(3)                    ->select();        View::assign([            'boke' => $boke,            'cat' => $cat,            'count' => ceil($count/10),            'TopArticle' => $TopArticle        ]);        return View::fetch('');    }

    html代码块

    <body class="home blog custom-background custom-font-enabled single-author">    <div id="page" class="hfeed site">      <header id="masthead" class="site-header" role="banner">        <hgroup>          <h1 class="site-title">            <a href="/" title="JiaJieChen个人博客" rel="home">JiaJieChen个人博客</a>          </h1>          <h2 class="site-description">同学们大家好。</h2>        </hgroup>        <nav id="site-navigation" class="main-navigation" role="navigation">          <ul class="nav-menu">            <li>              <a href="/index.html?">首页</a>            </li>            {foreach $cat as $cat_v}            <li>              <a href="?id={$cat_v['id']}">{$cat_v['name']}</a>            </li>            {/foreach}          </ul>        </nav>      </header>      <div id="main" class="wrapper">        <div id="primary" class="site-content">          <div id="content" role="main">            {foreach($boke as $boke_v)}            <div id="content" role="main">              <article>                <header class="entry-header">                  <h1 class="entry-title">                    <a href="/details.html" title="构建Nginx和PHP镜像" rel="bookmark">{$boke_v['title']}</a>                  </h1>                </header>                <div class="entry-content">{$boke_v['title']}</div>                <footer class="entry-meta">                  发布于                  <a href="/index.html?time=2020-10-02" title="2020-10-02" rel="bookmark">                    <time class="entry-date" datetime="2020-10-02">{$boke_v['date']}</time> </a                  >。 属于 <a href="/index.html?cate=4" title="查看 Linux中的全部文章" rel="category">{$boke_v['cat']}</a>分类                </footer>              </article>            </div>            {/foreach}          </div>          <div class="page">            <nav>              <ul class="pagination">                <li class="page-item disabled" aria-disabled="true" aria-label="&laquo; 上一页">                  <span class="page-link" aria-hidden="true">&lsaquo;</span>                </li>                {for start='0' end="$count" name='i'}                <li class="page-item">                  <a class="page-link" href="?p={$i+1}">{$i+1}</a>                </li>                {/for}                <li class="page-item">                  <a class="page-link" href="/index.html?page=2" rel="next" aria-label="下一页 &raquo;">&rsaquo;</a>                </li>              </ul>            </nav>          </div>        </div>        <div id="secondary" class="widget-area" role="complementary">          <aside id="search-2" class="widget widget_search">            <form role="search" id="searchform" action="" method="POST">              <div>                <label class="screen-reader-text" for="t">搜索:</label>                <input placeholder="搜索" type="text" class="no-border" name="keywords" id="t" />                <input type="submit" class="btn btn-default" id="searchsubmit" value="搜索" />              </div>            </form>            <script type="text/javascript">              $(function () {                $("#searchsubmit").click(function () {                  if ($("#t").val() != "") {                    location.href = "/index.html?t=" + $("#t").val();                  }                  return false;                });              });            </script>          </aside>          <aside id="recent-posts-2" class="widget widget_recent_entries">            <h3 class="widget-title">热门文章</h3>            <ul>              {foreach $TopArticle as $TopArticle_k => $TopArticle_v }              <li>                <font style="color: #7a7a7a">{$TopArticle_k+1}</font>&nbsp;                <a href="/details.html?id=20" title="{$TopArticle_v['title']}">{$TopArticle_v['title']}</a>              </li>              {/foreach}            </ul>          </aside>        </div>      </div>      <footer id="colophon" role="contentinfo">        <div class="site-info">          <span>友情链接:</span>          <a href="https://www.php.cn" target="_blank">PHP中文网</a>        </div>      </footer>      <footer role="contentinfo" style="margin-top: 0">        <div class="site-info" style="text-align: center">          <span>            <a href="https://beian.miit.gov.cn" target="_blank">苏ICP备2020058653号-1</a>          </span>        </div>      </footer>    </div>  </body>
    Correction status:Uncorrected

    Teacher's comments:
    Statement of this Website
    The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
    All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
    0 comments
    Author's latest blog post