在thinkPHP的MVC模式中,V:(view)视图 就是用于承载php回显数据的html文档
加载显示UI:
加载显示View
index/controller下新建User.php控制
里面写加载方法loadview
// 系统函数
return View();
// View方式
$view = new \think\View;
return $view->fetch();
// 在控制器方式:需要继承系统控制器类
$this->fetch();
controller同级目录新建View目录,里面新建user文件夹,里面新建loadview.html
- 其中
- View是前台模块中MVC的View模块,View里面的user文件夹对应controller下的User.php控制器(注意大小写)
- View里面的user文件夹中的html名字对应User.php中的loadview方法,注意名字相同
数据输入
1 | return "iCocos" |
- 控制器初始化
- 必须继承控制器
- 只要调用控制器的任务方法都会先找初始化方法
- 提取控制器公告代码,后台权限把控
1 | public function _initialize() { |
前置操作
定义方法之前做的事情,把一些公共的设置提取成方法,进行调用,但是必须结合系统控制器前置方法属性
1 | protected $beforeActionList=[ |
页面跳转
1 | thinkphp/library/think/Controller.php |
成功跳转
1 | $this->success("成功",'index/index'); // 默认跳转到上一个页面 |
失败跳转
1 | $this->success("失败",'index/index'); // 默认跳转到上一个页面 |
操作错误跳转的快捷方法
1 | /** |
修改模板页面: application/config.php中
1 | 'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl', |
/thinkphp/tpl/dispatch_jump.tpl
1 |
|
直接在code1和0之间指定对对应的内容可以
或者指定对应的模板页面
1 | 'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_success_jump.tpl', |
- /thinkphp/tpl/dispatch_success_jump.tpl
- /thinkphp/tpl/dispatch_error_jump.tpl
直接写dispatch_success_jump.tpl和dispatch_error_jump.tpl就可以实现自定义模板显示,
具体显示根据需求或者业务进行调整
重定向
重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)
- 状态码:
- 301 redirect、302 redirect
我们在网站建设中,时常会遇到需要网页重定向的情况:
- 1.网站调整(如改变网页目录结构);
- 2.网页被移到一个新地址;
- 3.网页扩展名改变(如应用需要把.php改成.Html或.shtml)。
这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失;再者某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点等。
我们先来了解一下用户/搜索引擎和网站一开始的交互流程。当用户或搜索引擎向一个网站服务器发出网页浏览请求时,该服务器将:
- 1.通过域名服务器(DNS)将域名转换为网站的IP地址,然后返回给客户
- 2.打开一个该IP套接口连接
- 3.记下通过该套接口的一个HTTP数据流
- 4.从WEB服务器接收一个响应请求的HTTP数据流。该数据流包含状态码,状态码的值由HTTP协议所决定。这里所说的“HTTP数据流”信息也叫“头信息(Header)”。
- 头信息中包括了日期,服务器类型,通常还会有一条“200 OK”信息。
- 如果一切良好,那么网络服务器就会将“200 OK”信息以及请求页面发送出去。
- 如果网站在这时候已经建立了重定向,那么服务器就会在头信息中包含一个“302 Moved Temporarily”或“301 Moved Permanent”之类的响应信息。
- 搜索引擎会根据服务器头信息中的内容作出决定。
URL 重定向
1 |
|
空操作
作用解决用户恶意输入,报错影响用户体验
1 | public function _empty() { |
空控制器
网站上线每个控制都必须写空操作,不论前台后台,都必须写一个Error.php控制器
controller下新建一个Error.php控制器
1 | <?php |
资料控制
通过命令生成控制,主目录中有一个think可执行文件
1 | #!/usr/bin/env php |
在主目录即application同级目录中操作命令行:php think
1 | Think Console version 0.1 |
创建MVC:
1 | php think make:controller app\index\controller\Conter |