写了点tp5的基础教程

创建类,命名空间,use

namespace app\index\controller; //命名空间

//这些use都是后面的方法用的,可以暂时屏蔽

use think\Db;

use app\index\controller\User as UserModel;

use app\index\controller\UserAddress as UserAddressModel;

use think\facade\Request;

use think\facade\Validate; //use导入类、函数和常量

//创建一个类

class Index

{

//http://www.tp2.com/index.php是入口文件,默认访问index模块 - index类 - index方法

//其实访问的是:http://www.tp2.com/index.php/index/index/index

//http://www.tp2.com是本地域名

public function index()

{

return '首页'; //return 是返回

}

//访问:http://www.tp2.com/index.php/index/index/hello

public function hello($name = 'ThinkPHP5')

{

echo 'hello,' . $name; //echo 是输出,用于输出显示字符串

}

}

获取请求参数

//访问:http://www.tp2.com/index.php/index/index/one

//带3个参数的访问:http://www.tp2.com/index.php/index/index/one?id=1&name=jack&age=22

public function one($id=0)

{

//获取请求参数的3种方法:

echo 'id:'.$id.'
'; //参数绑定法,
是换行

echo 'name:'.input('name').'
'; //助手函数法

echo 'age:'.Request::param('age'); //Facade调用,需要use引入Request类

}

验证器

//访问:http://www.tp2.com/index.php/index/index/check?name=jack&age=22a

//访问:http://www.tp2.com/index.php/index/index/check?name=ja&age=22

//访问:http://www.tp2.com/index.php/index/index/check?name=jack&age=22

public function check()

{

//独立验证,不走验证封装的类

$validate = Validate::make([

'name' => 'require|min:3', //name必须存在,并且≥3个字符

'age' => 'number' //age必须是数字

]);

if (!$validate->check(input())) {

dump($validate->getError());

return;

}

dump(['msg'=>'正常']); //dump是打印输出,输出数组

}

抛出异常错误

//打开调试模式:修改配置文件config/app.php中的'app_debug'=> true

//访问:http://www.tp2.com/index.php/index/index/ero //报方法参数错误,因为必须带id参数

//访问:http://www.tp2.com/index.php/index/index/ero?id=2 //结果为4

//访问:http://www.tp2.com/index.php/index/index/ero?id=0 //报错

public function ero($id)

{

try{

echo 8/$id;

}catch (\Exception $e){

exception('0不能当被除数', 400); //助手函数抛出异常

echo '抛出异常会终止执行,这里不会显示';

}

}

SQL文件,请手动创建数据库

CREATE TABLE `qy_user` (

`id` int(11) NOT NULL,

`name` varchar(255) NOT NULL,

`sex` int(11) NOT NULL,

`age` int(11) NOT NULL,

`create_time` int(11) NOT NULL,

`update_time` int(11) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `qy_user` (`id`, `name`, `sex`, `age`, `create_time`, `update_time`) VALUES

(1, '小张', 1, 23, 1560658653, 1560658653);

CREATE TABLE `qy_user_address` (

`id` int(11) NOT NULL,

`uid` int(11) NOT NULL,

`city` varchar(255) NOT NULL,

`county` varchar(255) NOT NULL,

`detail` varchar(255) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `qy_user_address` (`id`, `uid`, `city`, `county`, `detail`) VALUES

(1, 1, '北京', '海淀', 'XXXX街道XXXX号');

ALTER TABLE `qy_user` ADD PRIMARY KEY (`id`);

ALTER TABLE `qy_user_address` ADD PRIMARY KEY (`id`);

ALTER TABLE `qy_user` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

ALTER TABLE `qy_user_address` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

查询数据库,所有用户数据

//访问:http://www.tp2.com/index.php/index/index/get_user

public function get_user()

{

//记得修改数据库配置文件中的前缀:'prefix'=> 'qy_'

$res[0]=Db::name('user')->all(); //通过Db类操作数据库

$res[1]=UserModel::all(); //通过模型操作数据(推荐),需要先建好模型类,下面有代码

return json($res); //输出json格式用json()或json_encode()

}

模型关联操作

//访问:http://www.tp2.com/index.php/index/index/get_user_and_address

public function get_user_and_address()

{

//获取关联表所有内容

$res[0]=UserModel::with(['address'])->where('id',1)->find();

//获取关联表指定内容

$res[1]=UserModel::with(['address'=>function($q){

return $q->field('id,uid,detail');

}])->where('id',1)->find();

return json($res);

}

}

User模型类

同目录下新建User.php文件

namespace app\index\controller;

use think\Model;

class User extends Model{

public function address() {

return $this->hasOne('UserAddress','uid','id');

//关联键在address表,那么就用hasone,如果关联键在user表就用belongsTo

}

}

UserAddress模型类

同目录下新建UserAddress.php文件

namespace app\index\controller;

use think\Model;

class UserAddress extends Model

{

}

extend目录

extend目录下的目录必须要加命名空间

如:namespace Obj

应用的时候就是:use obj

extend目录下的文件,由于没有目录,所有不加命名空间

应用时:new \Obj即可

QQ截图20191112112800.jpg

thinking php 教程,Thinkphp基础教程相关推荐

  1. 全国电子商务人才专业化从业认证考试初级教程(公共基础教程)(全国电子商务人才丛业能力教育指定教材)

    书名:<全国电子商务人才专业化从业认证考试初级教程(公共基础教程)>(全国电子商务人才丛业能力教育指定教材) 作者:单兴华 组编:全国电子商务人才从业能力教育项目管理办公室 出版社:中国人 ...

  2. [转载]VBS入门教程 VBS基础教程

    [转载]VBS入门教程 VBS基础教程(收藏) VBS基础教程 VBS(VBScript的进一步简写)是基于Visual Basic的脚本语言. Microsoft Visual Basic是微软公司 ...

  3. 14-(基础入门篇)关于系统教程和基础教程后期规划

    https://www.cnblogs.com/yangfengwu/p/9966901.html 系统教程:现在的系统教程已经写完源码,还没配教程,现在买只能给源码哈 系统教程初步要做到的就是12节 ...

  4. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  5. python语言教程-Python 基础教程

    Python基础教程 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年. 像Pe ...

  6. sql基础教程mysql_SQL基础教程(第2版)笔记整理

    花了一段时间把SQL基础教程(第2版)看完,并把笔记整理好. 数据定义语言(Data Define Language) 数据操作语言(Data Manipulation Language) 数据控制语 ...

  7. javascript基础教程_JavaScript基础教程(九)对象、类的定义与使用

    对象.类的定义与使用 对象与类是面向对象程序设计语言教学过程中不可避免需要讲解的内容之一.很多人将两者混为一谈,简单认为对象就是类,类就是对象.实际上深入分析的话,对象与类的区别还是较为明显的.本文主 ...

  8. html5语言基础教程,HTML5基础教程,从入门到精通,零基础学HTML5

    随着互联网的快速发展,对前端开发方面的人才需求越来越大,其中Web前端领域的HTML5也受到许多人追捧 HTML5是构建Web内容的一种语言描述方式.HTML5是互联网的下一代标准,是构建以及呈现互联 ...

  9. python2.7教程 pdf_PYTHON基础教程至60课(2.7版本)整理

    python 基础教程至 60 课整理 2014 年 7 月 10 日:(整理前几天内容) 1. 疑惑: a. for score in data [1:]: 解答:将 score 一一赋 data ...

最新文章

  1. php提供的用户密码加密函数
  2. LeetCode Counting Bits(动态规划)
  3. java 方法中定义类_在Java方法中使用类定义
  4. 手脱EZIP v1.0
  5. 详谈P(查准率),R(查全率),F1值
  6. JAVA8后接口的新特性
  7. 双流国际机场公交线路到凤凰御庭
  8. java连接数据库的5种方式
  9. 自建CA然后颁发证书给搭建的httpd用
  10. Typec协议之PD通信消息详解一
  11. 利用Python实现FGO自动战斗脚本
  12. 为什么⽤线程池?解释下线程池参数?
  13. Linux Deepin 12.12 正式版本发布--焕然一新,即可惊艳!
  14. 大数据【Java开发转大数据学习路线分解】(不断细化ing)
  15. 信息安全技术 关键信息基础设施安全保护要求
  16. 最优化:一维搜索的Wolfe条件与Goldstein条件
  17. requests模块用法举例
  18. POJ 2429 GCD LCM Inverse (整数分解,由gcd+lcm求a,b)
  19. linux c语言设置ip,linux 下用指令和C语言来设置IP,MASK,gateway
  20. 京东java面试题目

热门文章

  1. 手写Android中MVC、MVP、MVVM对比
  2. Pyqt qtableview 大量动态刷新数据
  3. 单片机光敏电阻控制蜂鸣器_光敏电阻控制蜂鸣器的开关,当值大于200时关,反之则开。...
  4. Bing必应地图中国API一显示地图 (转) 做人要厚道
  5. Docker构建JDK 镜像
  6. My QQ Show
  7. Linux 命令 —— tree
  8. ESL第八章 模型推断和平均 【参数】自助法/得分函数/信息矩阵/观测信息/费舍尔信息量、贝叶斯方法/无信息先验、高斯混合/GEM/MM算法、吉布斯、Bagging、委员会、Stacking、随机搜索
  9. Spring MVC : HandlerMappingIntrospector
  10. 路由守卫(登录_vue3)