Thinkphp学习之终结

ThinkPHP5.0 学习笔记

第一章 TP5.0 基础

01 tp5.0 安装

1.TP5.0的安装

1.1源代码包安装

1.1.1thinkphp官网(www.thinkphp.cn) 下载

1.1.2解压到网站根目录(www)

1.1.3地址栏访问:http://localhost/tp5/public

1.2 composer安装

1.3 git安装

02 配置虚拟主机

1.配置本地路由表(C:WindowsSystem32driversetchosts)

添加 127.0.0.1 www.tp5.com

2.apache 开启虚拟主机(D:PHPHOMEApache24confhttpd.conf)

第505行 去掉# Include conf/extra/httpd-vhosts.conf

3.修改虚拟主机的配置(D:PHPHOMEApache24confextrahttpd-vhosts.conf)

1 <VirtualHost *:80>
2 DocumentRoot "D:PHPHOMEwww	p5public"
3 ServerName www.tp5.com
4 <Directory "D:PHPHOMEwww	p5public">
5 Options Indexes FollowSymLinks
6 AllowOverride All
7 Require all granted
8 </Directory>
9 </VirtualHost>

4.重启 apache

访问:www.tp5.com

03 tp5 目录介绍

|--application # 应用目录,是整个网站的核心

|--|--index # 前台目录

|--|--|--controller # 控制器

|--|--|--model # 数据模型

|--|--|--view # 页面

|--|--admin # 后台目录

|--extend # 扩展类库目录

|--public # 静态资源和入口文件

|--|--static # 存放静态资源 css,js,img

|--|--index.php # 入口文件

|--runtime # 网站运行临时文件

|--tests # 测试目录

|--thinkphp # 框架的核心文件

|--|--lang # 语言包

|--|--library # TP核心文件

|--|--tpl # 模板页面

|--vendor # 第三方扩展目录

04 url 地址了解

http:// www.tp5.com/ index.php/ Index/ Index/ index

         域名         入口文件    前台   控制器   方法

05 了解网站开发模式

1.开启调试模式(D:PHPHOMEwww p5applicationconfig.php)

// 应用调试模式
'app_debug' => true,

2.连接数据库(D:PHPHOMEwww p5applicationdatabase.php)

// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => '',
// 用户名
'username' => 'root',
// 密码
'password' => '',

3.控制器中书写代码(D:PHPHOMEwww p5applicationindexcontrollerIndex.php)

<?php
namespace appindexcontroller;

use appindexcontrollerUser;

use appadmincontrollerIndex as AdminIndex;

// 引入系统数据类
use thinkDb;

// 引入 Config 类
use 	hinkConfig;

// 引入系统控制器类
use thinkController;

// 引入Env类
use 	hinkEnv;
class Index extends Controller
{
    public function index()
    {
        /*
        页面返回 Hello world
        return "Hello world";
        */
        // 从数据库中读取数据
        $data=Db::table('login')->select();
        // var_dump($data);

        // 分配数据给页面
        $this->assign('data',$data);

        // 加载页面
        return view();
    }
}

4.页面中(D:PHPHOMEwww p5applicationindexviewindexindex.html)

<html>
<head>
<title>Document</title>
</head>
<body>
<table border="1" width="800px" align="center">
<tr>
<th>ID</th>
<th>username</th>
<th>passwd</th>
</tr>
{volist name='data' id="value"}
<tr>
<td>{$value.id}</td>
<td>{$value.username}</td>
<td>{$value.passwd}</td>
</tr>
{/volist}
</body>
</html

05 MVC模式

1.M model 模型

# D:PHPHOMEwww p5applicationindexmodel

作用:执行数据库相关处理

2.V view 视图

# D:PHPHOMEwww p5applicationindexview

作用:其实就是页面

3.C controller 控制器

# D:PHPHOMEwww p5applicationindexcontroller

作用:主要负责整个逻辑运转

扩展:

MC 模型和控制器

# 主要作用:用于接口开发

VC 视图和控制器

# 主要作用:单页面的网站

第二章 TP5.0 架构

01 TP 架构的概述

ThinkPHP 使用了MVC 模式,它强制性的使应用程序的输入,处理和输出分开。使用 MVC应用程序被分成三个核心部件:模型(M),视图(V),控制器(C),它们各自处理自己的 任务

02 URL 解析

http:// www.tp5.com /index.php /Index /Index /index

 协议          域名         入口文件    模块 控制器 方法

03 入口文件

1.文件地址

# D:PHPHOMEwww p5publicindex.php

2.作用

负责整个TP的请求

04 应用

1.应用地址

# D:PHPHOMEwww p5application

2.作用

一个应用代表一个网站

05 模块(以前台为例)

1.模块地址

# D:PHPHOMEwww p5applicationindex

2.作用

网站所有的前台相关都与其有关

3.新建后台模块

a.在应用目录下(D:PHPHOMEwww p5application)新建admin目录

b.在admin目录下新建 model,view,controller

c.在Controller目录中新建Index控制器(Index.php)

d.在Index.php中书写代码

<?php
// 声明命名空间
namespace appindexcontroller;

// 声明控制器
class User{
    // index 方法
    public function index(){
        return "我是后台控制器";
    }
}
?>

e.通过地址栏访问

http://www.tp5.com/index.php/Admin/Index/index

06 控制器

1.控制器目录

# D:PHPHOMEwww p5applicationindexcontroller

2.作用 书写业务逻辑

3.新建控制器(以前台为例)

a.在前台控制器目录(D:PHPHOMEwww p5applicationindexcontroller)下新建 User.php

b.在控制器中书写代码

<?php
// 声明命名空间
namespace appindexcontroller;

// 声明控制器
class User{
    // index 方法
    public function index(){
        return "我是前台 User 控制器中的 index 方法";
    }
}
?>

c.地址栏访问

http://www.tp5.com/index.php/Index/User/index

d.注意

1.控制器的文件名必须首字母大写

2.控制中必须声明命名空间

3.控制器中的类名必须和文件名相同

07 操作(方法)

1.操作地址 操作一般都在控制器的文件中

2.新建一个操作(以前台index控制器为例)

2.1 打开前台index控制器 (D:PHPHOMEwww p5applicationindexcontrollerIndex.php)

2.2 在控制器新建test方法

public function test()
{
    return "我是用户自己创建的方法";
}

2.3 地址栏访问

# http://www.tp5.com/index.php/Index/Index/test

08 模型(数据模型)

1.数据模型地址

# D:PHPHOMEwww p5applicationindexmodel

2.作用 负责数据库相关的处理

09 视图(页面)

1.视图地址

# D:PHPHOMEwww p5applicationindexview

2.作用 网站页面

10 命名空间

1.与目录有关(以前台index控制器命名空间为例)

namespace appindexcontroller;
D:PHPHOMEwww	p5applicationindexcontroller

11 跨控制器调用

1.使用命名空间

$model=new appindexcontrollerUser();
echo $model­>index();

2.使用 user

use appadmincontrollerIndex as AdminIndex;
$model=new AdminIndex();
echo $model->index();

3.使用系统方法

# 系统方法一般在(D:PHPHOMEwww p5 hinkphphelper.php)

$model=controller('admin/Index'); // 注意此时为反斜杠,如果书写成 \,将会出错
echo $model­>index();

11 调用方法

1.调用当前控制器的test方法

# 使用面向对象的技术

// 调用当前控制器的 test 方法
echo $this­>test();
echo "<hr>";
echo self::test();
echo "<hr>";
echo Index::test();

2.调用User控制器下的index方法

# 命名空间

$model=new appindexcontrollerUser;
echo $model­>index();
# 使用系统方法
echo action('User/index');

3.调用后台模块下Index控制器index方法

# 命名空间
$model=new appadmincontrollerIndex();
echo $model­>index();
# 使用系统方法
echo action('Admin/Index/index');

11 主要分析TP执行流程

1.入口文件(D:PHPHOMEwww p5publicindex.php)

作用:

1)定义目录常量

2)加载框架引导目录

2.加载框架的引导文件(D:PHPHOMEwww p5 hinkphpstart.php)

作用:

1)引导基础文件

2)对应用进行运转

3.加载框架的基础引导文件(D:PHPHOMEwww p5 hinkphpase.php)

作用:

1)加载系统常量

2)引入loader类(D:PHPHOMEwww p5 hinkphplibrary hinkLoader.php)

3)引入环境变量

4)注册自动加载机制

5)注册异常处理进制(D:PHPHOMEwww p5 hinkphplibrary hinkError.php)

6)记载惯例配置(D:PHPHOMEwww p5 hinkphpconvention.php)

4.运行应用(D:PHPHOMEwww p5 hinkphplibrary hinkApp.php) 下的 run方法

1)第一步:加载当前控制器中 initCommon() 方法

2)第二步:加载当前控制器中 init() 方法 加载各种配置文件,加载公共文件,加载语言包

3)第三步:设置时区

4)第四步:加载当前控制器 routeCheck() 方法 路由检测

5)第五步:调用控制器中 exec() 方法 根据用户请求进行分发处理

6)第六步:根据不同的请求类型加载对应文件 module() 方法 加载到对应的控制器和对应方法 5.响应输出 用户看到的所有界面就加载出来

第三章 TP5.0 配置

01 配置文件格式

1.ThinkPHP支持多种格式的配置格式,但最终都是解析为PHP数组的方式

return [
// 默认模块名 'default_module' => 'index',
// 默认控制器名 'default_controller' => 'Index',
// 默认操作名 'default_action' => 'index',
//更多配置参数
//...

02 配置的形式

1.惯例配置

a.惯例配置目录# D:PHPHOMEwww p5 hinkphpconvention.php

2.应用配置

a.应用配置目录 # D:PHPHOMEwww p5applicationconfig.php

3.扩展配置

a.扩展配置 其实就是对配置文件进行分目录的管理

b.扩展配置目录 # D:PHPHOMEwww p5applicationdatabase.php

# D:PHPHOMEwww p5applicationextra 用户可以自定义配置文件

c.读取database扩展配置 # 读取database中的扩展项 dump(config('扩展文件名.password'))

dump(config('database.password'));
# 读取所有database扩展
dump(config('database'));

d.自定义扩展配置

d1.在扩展目录(D:PHPHOMEwww p5applicationextra)下新建对应文件 user.php

d2.打开文件书写相关配置

<?php

return [
    'name'=>'LQ6H',
    'dream'=>'hacker',
    'waihao'=>'xiaoqiang'
];

?>

d3.读取自定义的扩展配置

dump(config('user'));
dump(config('user.dream'));

4.场景配置

a.解决问题 开发过程可能不同环境下进行开发

b.如何使用 b1.修改应用配置(D:PHPHOMEwww p5applicationconfig.php) # 修改成 home

// 应用模式状态
'app_status' => 'home',

b2.在应用目录下新建(D:PHPHOMEwww p5application) 新建对应home.php office.php b3.在 home.php 中书写相关配置

return [
    // 数据库类型
    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '127.0.0.1',
    // 数据库名
    'database'        => 'home',
    // 用户名
    'username'        => 'root',
    // 密码
    'password'        => '123456',
    // 端口
    'hostport'        => '',
    // 连接dsn
    'dsn'             => '',
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset'         => 'utf8',
    // 数据库表前缀
    'prefix'          => '',
    // 数据库调试模式
    'debug'           => true,

在office.php中书写相关配置

return [
    // 数据库类型
    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '127.0.0.1',
    // 数据库名
    'database'        => 'office',
    // 用户名
    'username'        => 'root',
    // 密码
    'password'        => '123456',
    // 端口
    'hostport'        => '',
    // 连接dsn
    'dsn'             => '',
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset'         => 'utf8',
    // 数据库表前缀
    'prefix'          => '',
    // 数据库调试模式
    'debug'           => true,

b4.读取配置信息

// 读取场景配置
public function getchangjiang()
{
    dump(config('database.database'));
    dump(config('database.password'));
}

如果改成:

// 应用模式状态 'app_status' => 'office',

思考:比较输出内容,明白场景配置

5.模块配置

a.解决问题 每一个模块,都有自己特有的配置

b.如何使用(以前台模块为例)

b1.在前台模块下(D:PHPHOMEwww p5applicationindex)新建 config.php

b2.打开配置文件书写

<?php
return [
    'index'=>'我是前台配置'?>

b3.读取

// 读取模块配置
public function getmokuai()
{
    dump(config('index'));
}

6.动态配置(D:PHPHOMEwww p5applicationindexcontrollerIndex.php)

a.系统方法

// 通过系统方法 ,config(参数1,参数2)
config('name','PHP 开发');
dump(config('name'));

b.系统类

// 通过系统类
	hinkconfig::set('name','web 前端');
dump(config('name'));

通过 use

// 引入 Config 类
use 	hinkConfig;
// 通过use
Config::set('name','小程序开发');
dump(config('name'));

03 读取配置

1.通过系统类

a.打印配置信息

// 通过系统类读取配置
echo 	hinkConfig::get('name'// 如果配置项存在,直接输出,不存在返回NULL
dump(	hinkConfig::get('abc'));

b.打印数组配置信息

dump(	hinkConfig::get('teacher'));
dump(	hinkConfig::get('teacher.name'));

2.通过系统方法

a.打印配置信息

// 系统函数读取配置
echo config('name'echo "<hr>";
echo config('age'echo "<hr>";
echo config('ZhuiZhu');

b.打印数组配置信息

// 通过config方法获取数组
dump(config('teacher'));
// 使用 teacher['name'],输出 NULL
dump(config('teacher.name'));

c.读取所有配置

dump(config());

3.使用 use

a.打印配置信息

// 引入 Config 类
use 	hinkConfig;
echo dump(Config::get('ZhuiZhu'));

b.打印数组配置信息

// 引入 Config 类
use 	hinkConfig;
// 通过config类 获取配置
dump(Config::get('teacher'));

06 系统类(D:PHPHOMEwww p5 hinkphplibrary hink)

1.config

# 设置和获取配置文件

07 系统方法(D:PHPHOMEwww p5 hinkphphelper.php)

1.Controller # 实例化控制器

2.action # 调用模块的操作方法

3.config # 设置和获取配置

4.dump # 浏览器友好的变量输出

08 配置文件之间的加载顺序

1.优先级 动态配置>模块配置>场景配置>扩展配置>应用配置>惯例配置

2.加载顺序(D:PHPHOMEwww p5 hinkphplibrary hinkApp.php)

惯例配置->应用配置->扩展配置->场景配置->模块配置->动态配置 3.配置文件实现原理 后面加载的数据对前面的数据覆盖

$temp1=array(
    'name'=>'LQ6H',
    'a'=>'a'$temp2=array(
    'name'=>'xiaoqiang',
    'b'=>'b'
);
dump(array_merge($temp1,$temp2));

09 环境变量配置

1. ThinkPHP5.0 支持使用环境变量配置,切记不能使用中文

2.设置环境变量配置

a.打开网站根目录(D:PHPHOMEwww p5) 新建 .env 文件

b.书写环境配置

name=LQ6H
age=20
sex=nan

[database]
type=mysql
name=root
password=123456

c.读取环境配置

# 命名空间
// 使用系统类
dump(	hinkEnv::get('name'));
dump(	hinkEnv::get('abc','不存在'));
# 使用use 导入Env类
// 引入Env类
use 	hinkEnv;
dump(Env::get('age'));
#读取数组配置,不能读取整个数组
dump(Env::get('database.name'));

3.如何使用

a.打开配置文件

use 	hinkEnv;
return [
// 应用调试模式
'app_debug'=>Env::get('app_deubg',false),
// 应用状态
'app_status'=>Env::get('app_status',''),

第四天 TP5.0 路由 

01 路由作用

1.简化 URL 地址,方便大家记忆

2.有利于搜索引擎优化

02 入口文件

1.前后台分离

a.在网站 public 目录下(D:PHPHOMEwww p5public) 新建admin.php

// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');

// 绑定后台
define('BIND_MODULE','admin');

// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';

// 关闭 admin 模块的路由
	hinkApp::route(false);

2.绑定模块

a.实现功能

index.php 这个入口文件 只能去前台模块

admin.php 这个入口文件 只能去后台模块

b.如何实现 在入口文件中

// 绑定前台
define('BIND_MODULE','index'// 绑定后台
define('BIND_MODULE','admin');

c.URL 地址发生改变

c1.入口绑定之前

# http://www.tp5.com/admin.php/admin/index/index

                                                     模块 控制器 方法

c2.入口绑定之后

# http://www.tp5.com/admin.php/index/index

                                                  控制器 方法

3.隐藏入口文件

a.开启 apache 的重写(D:PHPHOMEApache24confhttpd.conf)

在文件的 158 行,去掉前面的 # 注释,开启重写功能 LoadModule rewrite_module modules/mod_rewrite.so

b.设置访问权限(D:PHPHOMEApache24confextrahttpd-vhosts.conf) 将 AllowOverride None 将 None 改为 All

<VirtualHost *:80>
DocumentRoot "D:PHPHOMEwww	p5public"
ServerName www.tp5.com
<Directory "D:PHPHOMEwww	p5public">
AllowOverride All
</Directory>
</VirtualHost>

c.入口文件在网站public 目录下(D:PHPHOMEwww p5public) 新建.htaccess 文件 在 TP5 中,已经帮我们新建并配置好文件了

<IfModule mod_rewrite.c>
Options +FollowSymlinks ­Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !­d
RewriteCond %{REQUEST_FILENAME} !­f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>

d.重启服务

e.url地址变化

e1.隐藏之前 # http://www.tp5.com/index.php/Index/test

e2.隐藏之后 # http://www.tp5.com/Index/test

03 TP5.0 路由学习注意

1.支持三种方式的URL 解析规则

2.路由只针对应用,不针对模块,因此路由的设置也是针对应用下面的所有模块

3.如果有些模块不想使用路由,关闭后台模块 (D:PHPHOMEwww p5publicadmin.php) 注:此代码必须写在 加载框架引导文件之后

// 关闭 admin 模块的路由
	hinkApp::route(false

04 路由模式

1.普通模式

a.定义 关闭路由,完全使用默认的 PATH_INFO 方式URL

b.形式 # http://www.tp5.com/admin.php/Index/index

c.如何设置(D:PHPHOMEwww p5applicationconfig.php)

// 是否开启路由
'url_route_on' => false,
// 是否强制使用路由
'url_route_must' => false,

2.混合模式

a.定义 开启路由,并使用路由定义+默认 PATH_INFO 方式的混合

b.如何设置

// 是否开启路由
'url_route_on' => true,
// 是否强制使用路由
'url_route_must' => false,

3.强制模式

a.定义 开启路由,并设置必须定义路由才能访问

b.如何设置

// 是否开启路由
'url_route_on' => true,
// 是否强制使用路由
'url_route_must' => true,

05 设置路由

1.设置路由--动态单个注册

a.设置路由文件 # D:PHPHOMEwww p5application oute.php

b.如何设置

// 引入系统类
use thinkRoute;
// 定义路由规则
Route::rule('/','index/index/index');
Route::rule('test','index/index/test');

c.路由的形式

c1.静态地址路由

Route::rule('test','index/index/test');

c2. 给路由带参数 注册带参数路由

http://www.tp5.com/course/1

http://www.tp5.com/index/index/index/id/1

// 带参数路由
Route::rule('course/:id','index/index/course');
Route::rule('time/:year/:month','index/index/shijian');

c3.可选参数路由

// 可选参数
Route::rule('time/:year/[:month]','index/index/shijian');

c4.全动态路由

// 全动态路由
Route::rule(':a/:b','index/index/dongtai');

d.设置请求类型

d1.TP 中请求类型 get,post,put,delete

d2.设置各种请求

// 支持 get请求
Route::rule('type','Index/index/type','get');
Route::get('type','Index/index/type')
支持所有路由
Route::rule('type','Index/index/type','*');
Route::any('type','Index/index/type');

2.设置路由--动态批量注册

a.基本格式

Route::rule([
    '路由规则1'=>'路由地址和参数',
    '路由规则2'=>['路由地址和参数','匹配参数(数组)','变量规则(数组)']
...
],'','请求类型','匹配参数(数组)','变量规则');

b.使用

Route::rule([
'test'=>'index/index/test',
'course/:id'=>'index/index/course'
],'','get');

3.设置路由--配置文件批量注册

// 使用配置文件批量注册
return [
'test'=>'index/index/test',
'course/

06 变量规则

// 变量规则
Route::rule('course/:id','index/index/course','get',[],['id'=>'d{1,3}']);

07 路由参数

08 资源路由

1.资源路由的声明

# Route::resource('blog','index/blog');

2. 会自动注册7个路由规则

后台功能 add页面,展示页面,删除页面,修改页面,修改功能,增加功能

 09 快捷路由

1.声明

// 给User控制器设置快捷路由 Route::controller('user','index/User');

2.使用

namespace appindexcontroller;
class User {
public function getInfo() {
}
public function getPhone() {
}
public function postInfo() {
}
public function putInfo() {
}
public function deleteInfo() {
}
}

3.URL 访问

get http://localhost/user/info

get http://localhost/user/phone

post http://localhost/user/info

put http://localhost/user/info

delete http://localhost/user/info

10 URL生成

1.通过系统类

# dump(Url::build('index/index/index'));

2.系统方法

# dump(url('index/index/index'));

第五章 TP5.0 控制器

01 新建控制器(前台模块为例)

1.在前台控制器目录下(D:PHPHOMEwww p5applicationindexcontroller) 新建控制器文件 User.php

2.User.php文件中如何书写

<?php
// 声明命名空间
namespace appindexcontroller;

// 引入View类
use 	hinkView;

// 引入系统控制器类
use thinkController;

// 声明控制器
class User extends Controller
{

    public function index()
    {
        return "我是 User 控制器的 index 方法";
    }
}

3.地址栏访问

# http://www.tp5.com/index.php/Index/User/index

4.注意

a.控制器文件名必须首字母大写,文件名采用驼峰命名

b.控制器名必须跟文件名一一对应

c.命名空间必须和文件名对应

# namespace appindexcontroller;

# D:PHPHOMEwww p5applicationindexcontroller

d.如果控制器名字采用驼峰命名 UserInfo.php,进行url地址访问时必须使用 user_info # http://www.tp5.com/index.php/Index/User_Info/index

02 控制器如何加载页面

1.系统 View 类

// 实例化系统 View 类
//$view=new 	hinkView();
//return $view­>fetch();
// 引入View类
use 	hinkView;
// 使用use
$view=new View();
return $view­>fetch();

2.系统 Controller 类,需要继承

class User extends Controller
// 使用系统控制器方法
return $this->fetch();

3.系统函数

// 使用系统函数
return view();

03 数据输出

1.在应用配置文件中可以设置数据返回格式

// 默认输出类型
'default_return_type' => 'html',

04 控制器的初始化

1.控制器初始化方法必须继承系统控制器

public function _initialize()
{
    echo "我是初始化方法";
}

2.只要调用控制器下的任意方法,都会先找初始化方法

3.控制器初始化方法的使用

a.可以用来提取控制器下公共的代码

b.网站后台

05 前置操作

1.前置方法 把一些公共的设置提取成方法进行调用

2.前置方法必须结合系统控制器

// 前置方法属性
protected $beforeActionList=[
'one',
// 表示这些方法不使用前置方法 two
'two'=>['except'=>'index'],
// 仅仅可以让index方法使用 three
'three'=>[

06 页面跳转

1.页面跳转基于系统控制器,类,所以控制器必须继承系统控制器

2.方法所在路径 # D:PHPHOMEwww p5 hinkphplibrary raitscontrollerJump.php

3.跳转方式

a.成功跳转,所用函数为 success

// 登录成功之后跳转
// $this­>>success
// 跳转地址未设置时,默认返回上一页面
$this­>success("登录成功","index/index");

b.失败跳转,所用函数为 error

// 失败之后跳转
$this­>error("登录失败");

4.修改成功和失败的模板页面

a.找到默认模板页面(D:PHPHOMEwww p5applicationconfig.php)

// 默认跳转页面对应的模板文件
'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',

b.文件目录

# D:PHPHOMEwww p5 hinkphp pldispatch_jump.tpl

c.跳转方法给模板页面的数据

c1.$code 返回的状态码 成功为1,失败为0

c2.$msg 页面的提示信息

c3.$wait 等待时间

c4.$url 制定跳转页面 默认返回上一个页面

c5.$data 用户返回的数据

d.修改成功和失败页面 在成功失败模板页面进行修改

5.用户自定义页面跳转模板

a.修改配置文件

'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'success.tpl',
'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'error.tpl',

b.在系统模板目录下(D:PHPHOMEwww p5 hinkphp pl) 新建 success.php 和 error.php

07 重定向

1.作用 重定向(Redirect) 就是通过各种方法将各种网络请求重新定个方向转到其他位置

2.使用(D:PHPHOMEwww p5 hinkphplibrary raitscontrollerJump.php)

08 空操作和空控制器

1.空操作

# 主要解决用户恶意的地址栏输入,报错影响交互

// 空操作
public function _empty()
{
    $this­>redirect('index/index');
}

2.空控制器

<?php
// 声明命名空间
namespace appindexcontroller;
use thinkController;
// 声明控制器
class Error extends Controller
{
    public function index()
    {
        $this­>redirect('index/index');
    }
    // 空操作
    public function _empty()
    {
        $this­>redirect('index/index');
    }
}
?>
            

09 命名行模式

1.切换到网站的根目录下

2.输入 php think

3.使用

a.创建控制器

# php think make:controller appindexcontrollerGoods

b.创建数据模型

# php think make:controller appindexmodelGoods

原文地址:https://www.cnblogs.com/LQ6H/p/php-1.html