PHP之ThinkPHP框架(界⾯)
Thinkphp框架其精髓就在于实现了MVC思想,其中M为模板、V为视图、C为控制器,模板⼀般是公共使⽤类,在涉及数据库时,⼀般会跟数据表同名,视图会和控制器类⾥的⽅法进⾏名字的⼀⼀对应。
下载及配置
如果要隐藏index.php且服务器为Apache则需要将public\.htaccess下内容替换为:
1<IfModule mod_rewrite.c>
2 Options +FollowSymlinks -Multiviews
3 RewriteEngine on
4 RewriteCond %{REQUEST_FILENAME} !-d
5 RewriteCond %{REQUEST_FILENAME} !-f
6 RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
7</IfModule>
版本要求
php版本⼤于等于5.4
访问规则
命名规则
模块名:全部⼩写
控制器名:⾸字母⼤写
⽅法名:全部⼩写
注意:
URL输⼊时不区分⼤⼩写,框架会⾃动根据标志转换,可在config⾥设置(url_convert' => false)
如果控制器名为驼峰式命名(如HelloWorld)访问时地址栏应⽤下划线处理(如 hello_world)
新建⼊⼝App
复制⼀份application,然后在public/index.php中修改对应的⼊⼝名字
建⽴MVC⽬录
命名规则:
模板(model):⾸字母⼤写
视图(view):全部⼩写
控制器(controller):⾸字母⼤写
显⽰错误信息和调试
打开应⽤的⽬录⾥的config.php⽂件配置:
app_debug 值为true则显⽰调试信息
show_error_msg 值为ture 则显⽰错误信息
CSS和JS及图⽚的地址引⽤
在视图⽬录下想要引⽤到⼀些资源⽂件,如css,js,图⽚等,是不⽀持使⽤把相关⽂件放到view⽬录下的,应该把资源⽂件放在public⽬录下,然后在App中的config.php⾥的view_ replace_str下添加资源⽂件的⽬录宏定义
1// 视图输出字符串内容替换
2    'view_replace_str'      => [
3
4        '__DSTYLE__'=>"/atp/public/static/library",
5        '__DIMG__'=>"/atp/public/img",
6
7    ],
使⽤:
如果修改后在开发者⼯具发现数据使⽤依然是上⼀次更改的地址,说明有缓存在作怪,可以到 runtime\temp ⽬录下清除
1 <img src="__DIMG__/banner7.png">
2 <link rel="stylesheet" href="__DSTYLE__/donglayui/layui/css/layui.css"  media="all">
简单的值匹配
视图代码:
1<!doctype html>
2<h1>--{$name1}--</h1>
3<h2>--{$name2}--</h2>
控制器代码:
php文件管理系统mvc 源码1 <?php
2 namespace app\index\controller;
3//导⼊必要模块
4use think\Controller;
5
6
7class Xiao extends Controller
8 {
9public function xiao2(){
10$valuex1="匹配值1";
11$valuex2="匹配值2";
12//匹配,变量赋值
13$this->assign("name1",$valuex1);
14$this->assign("name2",$valuex2);
15//渲染输出
16        //返回视图 fetch实参为空表⽰函数同名的html,实参可以传递其它视图名称
17return$this->fetch();
18    }
19
20 }
数组值的匹配
视图中获取
{$ff.1}
控制器
$valuex2=array("0","1","1");
$this->assign("ff",$valuex2);
return $this->fetch();
Volist的使⽤
该⽅法是thinkphp中很有趣的⽅法,其可以实现在视图⽂件中进⾏数组的循环遍历,最常会使⽤其进⾏数据库表格的遍历显⽰。
视图中的代码:
1<table border="1">
2<!--表格头-->
3<thead>
4<tr>
5<th>id</th>
6<th>⽤户名</th>
7<th>昵称</th>
8<th>备注</th>
9</tr>
10</thead>
11
12<!--表格内容-->
13<tbody>
14<!--循环遍历-->
15                {volist name="listallh" id="vo"}
16<tr>
17<td>{$vo.id}</td>
18<td>{$vo.user}</td>
19<td>{$vo.name}</td>
20<td>{$vo.oo}</td>
21</tr>
22              {/volist}
23</tbody>
24</table>
控制器代码:
1$listall=array();
2$listall[]=array("id"=>1,"user"=>"dong1","name"=>"dongxiaodong1","oo"=>"⽆");
3$listall[]=array("id"=>2,"user"=>"dong2","name"=>"dongxiaodong2","oo"=>"⽆");
4$listall[]=array("id"=>3,"user"=>"dong3","name"=>"dongxiaodong3","oo"=>"⽆");
5$listall[]=array("id"=>4,"user"=>"dong4","name"=>"dongxiaodong4","oo"=>"⽆");
6$this->assign('listallh',$listall);
7return$this->fetch();
公共界⾯
如果多个页⾯需要使⽤到同⼀个HTML代码块,可以将代码块放到外⾯,其它界⾯直接通过引⽤即可
在view⽬录下创建⾃定义⽂件名字的⽂件夹(public_view),⾥⾯创建⾃定义⽂件名的HTML⽂件(menu.html),在需要的地⽅直接通过【{include file="public_view/menu"}】引⼊即可
创建公共⽂件
HTML内容
<h2>东⼩东内容匹配页</h2>
在其它页⾯中使⽤
<h2>东⼩东</h2>
{include file="public_view/menu"}显⽰效果

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。