[TOC] ## HTML - 文件名称:tpl.blade.php > 语法完全源自于Laravel模板文件,更多语法请参考[Laravel](https://xueyuanjun.com/books/laravel-docs-7)说明文档 > 前端html开发文件(可单独创建,前端开发者无需关心后端代码实现) > 自定义Layout布局或默认布局 > 让分页更智能 ## 源码示例和分析 #### 开始例子 设置文件/html/www/demo/test/html/demo1/tpl.blade.php内容如下 ~~~ Hello Tphp ! ~~~ 打开网址[http://demo.tphp.com/test/html/demo1](http://demo.tphp.com/test/html/demo1)获得如下效果 ![](https://box.kancloud.cn/d03bd62526e4fb2135a8a7cab2ca3d2d_471x90.png) 生成源码如下 ![](https://box.kancloud.cn/fb3aa9cd83700f2c5fc8b040885cf881_629x282.png) - 此时Layout默认指向路径为/html/www/layout/public/tpl.blade.php (已存在) - 如果/html/www/layout/public/tpl.blade.php文件不存在则默认路径为/html/sys/public/layout/public/tpl.blade.php - www\_demo\_test\_html\_demo1是自动路由指向 #### 去除layout 设置文件/html/www/demo/test/html/demo2/tpl.blade.php内容如下 ~~~ Hello Tphp ! ~~~ 设置文件/html/www/demo/test/html/demo2/data.php内容如下 ~~~ <?php return [ 'layout' => false ]; ~~~ 打开网址[http://demo.tphp.com/test/html/demo2](http://demo.tphp.com/test/html/demo2)获得如下效果 ![](https://box.kancloud.cn/d2ecba8b838937bb96f6a3566ad645b3_493x84.png) 生成源码如下 ![](https://box.kancloud.cn/288b96a5fec36839f81629205000d9ef_540x72.png) - 此时可以看到HTML源代码已经原样输出 #### 数据库示例 设置文件/html/www/demo/test/html/demo3/_init.php内容如下 ~~~ <?php return function (){ $this->setView('city_id', '城市ID'); $this->setView('city_title', '城市名'); }; ~~~ 设置文件/html/www/demo/test/html/demo3/data.php内容如下 ~~~ <?php return [ 'type' => 'sql', 'config' => [ 'table' => 'area', 'conn' => 'demo', ] ]; ~~~ 设置文件/html/www/demo/test/html/demo3/tpl.blade.php内容如下 ~~~ <div>城市列表,当前列表数量{{count($_)}}</div> <table border="1" cellpadding="0" cellspacing="0"> <thead> <tr> <th>{{$city_id}}</th> <th>{{$city_title}}</th> </tr> </thead> <tbody> @foreach($_ as $key=>$val) <tr> <td>{{$val['id']}}</td> <td>{{$val['title']}}</td> </tr> @endforeach </tbody> </table> ~~~ 打开网址[http://demo.tphp.com/test/html/demo3](http://demo.tphp.com/test/html/demo3)获得如下效果 ![](https://box.kancloud.cn/0556cc95efbc0110d5a878534e76622e_449x821.png) - $this->setView('city_id', 参数);中的参数可以是对象、数组、字符串、数字等。和Laravel中的view('tpl', '参数')中的参数是一样的效果。 - $_ 是数据库查询最终数据列表 #### 分页 除了tpl.blade.php文件外,其他设置和demo3一样 设置文件/html/www/demo/test/html/demo4/tpl.blade.php内容如下 ~~~ <div>城市列表,当前列表数量{{count($_)}}</div> <table border="1" cellpadding="0" cellspacing="0"> <thead> <tr> <th>{{$city_id}}</th> <th>{{$city_title}}</th> </tr> </thead> <tbody> @foreach($_ as $key=>$val) <tr> <td>{{$val['id']}}</td> <td>{{$val['title']}}</td> </tr> @endforeach </tbody> </table> {!! page(0, ['xx', 'ff'], 'uuu') !!} {!! page(0, ['xx'], 'xxx') !!} {!! page('simple', ['yy'], 'uert') !!} {!! page('Digg', null, null) !!} {!! page('Yahoo') !!} {!! page(['Yahoo', 'Simple']) !!} {!! page(['Simple', 'Yahoo']) !!} {!! page(['Black', 'Simple'], ['i']) !!} ~~~ 打开网址[http://demo.tphp.com/test/html/demo4?psize=3&p=3](http://demo.tphp.com/test/html/demo4?psize=3&p=3)获得如下效果 ![](https://box.kancloud.cn/5323fe04f66594d91dd1716dcf6279de_724x719.png) - URL参数: p是页数,psize是每页列表数(默认为20) - 分页模板路径: /html/sys/page page(参数1,参数2,参数3)参数详解 - 参数1 - - 当为0是默认路径指向:/html/sys/page/default - - 当为字符串时路径指向:/html/sys/page/字符串 - - 当为数组时['字符串1', '字符串2']\: 字符串1为HTML模板代码路径,字符串2为CSS样式路径,当字符串2不存在或未设置则使用字符串1样式路径,所以对应的HTML是/html/sys/page/字符串1/tpl.blade.php,css是/html/sys/page/字符串2/tpl.css - 参数2:数组类型,代表URL参数传递的保留参数,比如设置为['name'],访问的页面是?p=1&name=tphp&value=ok,当跳转到第二页页面参数变为?p=2&name=tphp,其中name已经保留了,而value丢失 - 参数3:字符串类型,设置锚链接,当值为'tphp'时,访问第二页连接变为?p=2#tphp