
thinkphp6.0学习
小小神丶
未毕业学生仔一枚,喜欢代码,请多多指教!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
thinkphp6.0之验证内置规则
一、内置规则1、内置的规则内容比较多,并且严格区分大小写2、静态方法支持两种形式,比如::number 或者isNumber均可3、require是php保留字,就要使用isRequire或must()4、格式验证类5、长度和区间验证类6、字段比较类7、其它验证类...原创 2020-03-30 17:42:10 · 1392 阅读 · 0 评论 -
thinkphp6.0之验证场景和路由验证
一、验证场景1、验证场景设置,将特定的场景下是否进行验证,独立验证不存在场景验证2、举一个简单的例子,新增数据需要验证邮箱,而修改更新时不验证邮箱3、可以在验证类Students.php中,设置一个$scene属性,用来限定场景验证protected $scene=[ 'insert' =>['name','upass','email'], 'edit' =>...原创 2020-03-30 17:38:31 · 1771 阅读 · 0 评论 -
thinkphp6.0响应输出和重定向
一、响应输出1、响应输出有好几种:包括return、json和view等待2、默认的输出方式是以html格式输出,如果你发起json请求,则输出json3、而背后是response对象,可以用response输出达到相同的效果return response($data);4、使用response方法可以设置第二参数...原创 2020-03-30 11:15:56 · 2222 阅读 · 0 评论 -
thinkphp6.0之伪静态、参数绑定、请求缓冲
伪静态1、可以通过route.php修改伪静态的后缀,比如修改成shtml、xml等'url_html_suffix' =>'html',2、如果地址栏用后缀访问成功后,可以使用Request::ext()方法得到当前伪静态return Request::ext();3、配置文件伪静态后缀,可以支持多个,用竖线隔开'url_html_suffix' =>'shtml|x...原创 2020-03-29 20:28:46 · 1041 阅读 · 0 评论 -
thinkphp6.0之请求类型和HTTP头信息
学习thinkphp6.0原创 2020-03-29 12:49:38 · 4296 阅读 · 0 评论 -
thinkphp6.0之初了解请求变量
一、请求变量1、Request对象支持全局变量的检测、获取和安全过滤2、使用has方法可以检测全局变量是否已经设置Request::has('id', 'get'); Request::has('username', 'post');3、Request支持的所有变量类型方法4、param变量方法是自动识别GET、POST等的当前请求,推荐使用//获取请求为name 的值,过滤 ...原创 2020-03-29 11:17:00 · 532 阅读 · 0 评论 -
thinkphp6.0之请求对象和信息
一、请求对象1、使用构造方法注入请求namespace app\controller; use think\Request;class Rely {protected $request;public function __construct(Request $request) { $this->request = $request; }public functio...原创 2020-03-28 17:05:57 · 454 阅读 · 0 评论 -
thinkphp6.0之门面Facade初了解
一、创建静态调用1、Facade,即门面设计模式,为容器的类提供了一种静态的调用方式2、在之前的很多课程中,我们大量的引入 Facade 类库,并且通过静态调用3、比如请求 Request::?,路由 Route::?,数据库 Db::?等等,均来自 Facade;4、我们手工来创建一个自己的静态调用类库,来了解一下流程;5、在应用目录下创建 common 公共类库文件夹,并创建 Tes...原创 2020-03-28 16:30:12 · 2224 阅读 · 0 评论 -
thinkphp6.0路由篇之注解路由和URL生成
一、注解路由注解路由需要安装扩展进行扩展安装需要执行命令:composer require topthink/think-annotation3.安装好后,使用use引入相关类库use think\annotation\Route;4.然后再控制器设置注解代码即可,可以使用PHPDOC生成一段,然后添加路由规则5、添加时必须使用双引号,单引号会报错/** * @param...原创 2020-03-28 16:16:09 · 4342 阅读 · 2 评论 -
thinkphp6.0路由篇之路由的分组和MISS
一、路由分组1、路由分组,即将相同前缀的路由合并分组,这样可以简化路由定义,提高匹配效率2、使用 group()方法,来进行分组路由的注册Route::group('address', function () { Route::rule(':id', 'Address/details'); Route::rule(':name', 'Address/search'); })->...原创 2020-03-26 10:31:47 · 2250 阅读 · 0 评论 -
thinkphp6.0路由篇之路由的域名和跨域请求
一、域名路由1、要使用域名路由,首先需通过hosts文件来映射2、文件目录再C:\Windows\System32\drivers\etc3、 在末尾添加一句:127.0.0.1 news.abc.com 映射二级域名;4、此时,我们访问 news.abc.com 就直接映射到 localhost 里了如果想访问 thinkphp 独立的服务器,开启后,直接:8080 即可http:/...原创 2020-03-26 09:58:22 · 2738 阅读 · 0 评论 -
thinkphp6.0路由篇之路由的地址和参数
一、路由地址1、路由的地址一般为:控制器/操作方法构成//默认index控制器Route::rule('/', 'index');//控制器/操作方法 Route::rule('details/:id', 'Address/details');2、支持多级控制器,并且支持路由到相应的地址//目录为:app\controller\group namespace app\contro...原创 2020-03-26 09:35:45 · 5575 阅读 · 0 评论 -
thinkphp6.0路由篇之路由的变量规则和闭包
一、变量规则1、系统默认的路由变量规则为/w+,即字母下划线数字和中文;2、如果想要更改默认的匹配规则,可以修改config/route.php配置//默认的路由变量规则'default_route_pattern' =>'[\w\.]+';3、如果需要对于具体的变量进行单独的规则设置,需要通过pattern()方法4、将details方法李的id值,严格限制只能是数字\d+...原创 2020-03-25 18:06:58 · 1958 阅读 · 0 评论 -
thinkphp6.0路由篇之路由的定义
一、路由1、路由的作用是让URL地址更加规范和简洁2、设置路由对URL检测、验证等一系列操作提供了极大的便利3、路由是默认开启的//是否启用路由'with_route' =>false;4、路由的配置文件在config/route.php,定义文件在route/app.php5、创建Address控制器类,创建两个方法 public function details($id...原创 2020-03-25 17:45:46 · 5334 阅读 · 0 评论 -
thinkphp6.0模型篇之关联统计与输出
一、关联统计1、使用withCount()方法,可以统计主表关联附表的个数,输出用profile_count;$list=Students::withCount(['stumenu'])->select([20,21,11]);foreach($list as $user){ echo $user->stumenu_count; }2、关联统计的数据采用“关联方法名”_c...原创 2020-03-25 14:22:37 · 2200 阅读 · 0 评论 -
thinkphp6.0模型篇之关联预载入
1、在普通的关联查询下,我们循环数据列表会执行n+1次sql查询$list = UserModel::select([19, 20, 21]); foreach ($list as $user) { dump($user->profile); }2、采用关联预载入的方式,会执行两次查询$list=Students::with(['stumenu'])->select([...原创 2020-03-25 14:08:44 · 1231 阅读 · 0 评论 -
thinkphp6.0模型篇之模型的数据类型和转换
一、模型类型转换1、系统可以通过模型端设置写入或读取时对字段类型进行转换2、在模型端设置想要类型转换的字段属性,属性值为数组protected $type=['price' => 'integer', 'status' => 'boolean', 'create_time' => 'datetime:Y-m-d'];3、数据库查询读取的字段很多都是字符串类型,我...原创 2020-03-24 22:52:20 · 1873 阅读 · 0 评论 -
thinkphp6.0模型篇之模型的自动时间戳和只读字段
一、模型自动时间戳1、如果你想全局开启,在database.php中,设置为true//自动写入时间戳字段'auto_timestamp'=>true;原创 2020-03-24 22:42:14 · 2772 阅读 · 0 评论 -
thinkphp6.0模型篇之模型的搜索器和数据集
一、模型搜索器1、搜索器是用于封装字段(或搜索标识)的查询表达式,类似查询范围2、一个搜索器对应模型的一个特殊办法,改方法为public3、方法名的命名规范为:searchFieldAttr();4、封装一个邮箱字符模糊查询,然后封装一个时间限定查询5、在Students模型端下,创建两个对外的方法//模型端public function searchEmailAttr($query...原创 2020-03-24 19:24:22 · 1736 阅读 · 0 评论 -
thinkphp6.0模型篇之模型的查询范围
一、模型查询范围1、在模型端创建一个封装的查询或写入方法,方便控制器端等调用2、封装一个筛选出权限为1的查询,并且只显示部分字段5条3、方法名规范:前缀scope,后缀随意,调用时直接把后缀作为参数使用public function scopeMale($query){$query->where('type','1') ->field('id','uname','up...原创 2020-03-24 19:02:42 · 1703 阅读 · 1 评论 -
thinkphp6.0模型篇之模型的获取器和修改器
一、模型获取器1、获取器的作用是对模型实例的数据做出自动处理2、一个获取器对应模型的一个特殊方法,改方法为public3、方法名的命名规范:getFieldAttr();4、数据库表示状态status字段采用的是数值,而在页面上,我们需要输出status字段希望是中文,就可以使用获取器5、在Studnets模型端,创建一个对外的方法public function getStatusAt...原创 2020-03-24 18:20:13 · 2767 阅读 · 0 评论 -
thinkphp6.0模型篇之模型的字段设置
一、字段设置1、模型的数据字段和表字段是对应关系,默认会自动获取,包括字段的类型2、自动获取会导致增加一次查询,如果再模型中配置字段信息,会减少内存开销3、可以再模型设置$schema字段,明确定义字段信息,字段需要对应表写完整//设置字段信息,需要写完整的数据表字段protected $schema =['id' =>'int','uname' =>'string',...原创 2020-03-24 17:59:15 · 3525 阅读 · 0 评论 -
thinkphp6.0模型篇之模型的数据查询
一、数据查询1、使用find方法,通过主键id查询到想要的数据$user=Students::find(147)return json($user);2、也可以使用where方法进行条件筛选查询数据$user=Students::where('id',1)->find();return json($user);3、调用find方法时,如果数据不存在则返回null4、还要f...原创 2020-03-24 14:58:16 · 4839 阅读 · 0 评论 -
thinkphp6.0之模型篇之模型的数据更新
一、数据更新1、使用find方法获取数据,然后通过save方法保存修改,返回布尔值$user = UserModel::find(11); $user->username = '李黑'; $user->save()2、通过where方法解和find方法的查询条件获取的数据进行修改$user=Students::where('id',1)->find();$user...原创 2020-03-24 13:27:37 · 2382 阅读 · 0 评论 -
thinkphp6.0之模型篇之模型的新增和删除
一、数据新增1、使用实例化的方式添加一条数据//第一种实例化方式$user=new Students();//第二种实例化方式$user=new \app\model\Students();2、设置要新增的数据,然后用save()方法写入到数据库中,save返回布尔值$user->username = '李白'; $user->password = '123'; $...原创 2020-03-24 13:13:07 · 1664 阅读 · 0 评论 -
thinkphp6.0之模型篇的定义方式
一、定义模型1定义一个和数据库表向匹配的模型class Students extends Model2、模型会自动对应数据表,并且有一套自己的命名规则3、模型类需要去除表前缀(tp_),采用驼峰式命名,并且首字母大写tp_students =>Studentstp_students_type =>StudentsType4、创建空模型后,我们可以再控制器调用,创建...原创 2020-03-24 12:54:47 · 1640 阅读 · 0 评论 -
thinkphp6.0学习笔记之数据库的数据集
一、数据集1、数据集是当查询后的结果集,它是think\Collection类型和数组一样2、操作和数组类似,但是它额外提供了一些方法,方法如下3、⭐某些方法关键字和数据库查询类似,但它是数据集操作的方法//获取数据集$user=Db::table('students')->select();//转换成数组var_dump($user->toArray());//使...原创 2020-03-24 12:37:35 · 599 阅读 · 0 评论 -
thinkphp6.0学习笔记之数据库的事务和获取器
一、事务处理1、数据库的表引擎需要是InnoDB才可以使用2、事务处理需要执行多个sql查询,数据是关联恒定的3、如果成功一条查询,改变了数据,而后一条失败,则前面的数据回滚4、系统提供了两种事务处理的方式,第一种是自动处理,出错自动回滚Db::transaction(function (){Db::table('表名')->where('id',19)->save(['p...原创 2020-03-24 12:27:04 · 324 阅读 · 0 评论 -
thinkphp6.0学习笔记之数据库的快捷查询
一、快捷查询1、 系统封装了很多 where 方法的快捷方式,全部如下:2、whereColumn方法,比较两个字段的值,符合的就筛选出来,默认相等$user = Db::name('user') ->whereColumn('update_time', '>=', 'create_time') ->select()3、whereFieldName()方法,查询某个字...原创 2020-03-23 12:27:04 · 397 阅读 · 0 评论 -
thinkphp6.0学习笔记之数据库的高级查询
一、高级查询1、使用 | (or)或&(and)来实现where条件的高级查询,where支持多个连缀$user = Db::table('students') ->where('username|email', 'like', '%xiao%') ->where('price&uid', '>', 0) ->se...原创 2020-03-23 12:04:37 · 899 阅读 · 0 评论 -
thinkphp6.0学习笔记之数据库的链式查询方法
一、where1、表达式查询,就是where方法 的基础查询方式Db::table('students')->where('id', '>', 70)->select();2、关联数组查询,通过键值对来数组键值对匹配的查询方式$user = Db::table('students')->where([ 'gender' => '男', 'price' =&g...原创 2020-03-23 11:24:43 · 816 阅读 · 0 评论 -
thinkphp6.0学习笔记之数据库的聚合、原生、子查询
一、聚合查询1、使用count()方法,可以求出所查询数据的数量return Db::table('students')->count()2、count()可设置指定id,比如有空值(null)的create_time,不会计算数量Db::table('students')->count('create_time');3、使用max()方法,求出所查询数据字段的最大值D...原创 2020-03-22 16:33:11 · 1075 阅读 · 0 评论 -
thinkphp6.0学习笔记之数据库的时间查询
一、传统方式1、可以使用>、<、>=,<=来筛选匹配时间的数据Db::table('表名')->where('create_time','>','2020.3.22')->select();2、可以使用between关键字来设置时间的区间Db::name('表名')->where('create_time', 'between', ['20...原创 2020-03-22 16:15:17 · 1922 阅读 · 0 评论 -
thinkphp6.0学习笔记之数据库的查询表达式
一、比较表达1、查询表达式支持大部分常用的sql语句,语法格式如下:where('字段名','查询表达式','查询条件');2、在进行数据筛选时,采用where方法,比如id=1Db::name('user')->where('id', 80) ->find();3、 使用<>、>、<、>=、<=可以筛选出各种符合比较值的数据列...原创 2020-03-22 16:01:32 · 1818 阅读 · 0 评论 -
thinkphp6.0学习笔记之数据库的修改删除
数据库的修改删除一、数据修改1.使用update()方法修改数据,修改成功返回影响行数,没有修改返回0;$data = [ 'username' => '李白' ]; return Db::name('students')->where('id', 38)->update($data);...原创 2020-03-22 15:33:40 · 1129 阅读 · 0 评论 -
thinkphp6.0学习笔记之数据库之链式查询
数据库链式查询一、查询规则1.通过指向符号‘->’多次联系调用方法称为:链式查询;2.当使用Db::name(’’)时,返回查询对象(query),后面可以加数据库对应的方法3.每次执行一个数据库查询方法时,还会返回查询对象;4.只要还是数据库对象,就可以一直使用指向符合进行链式查询5.find(),select()方法是返回数组或数据集对象(colletion);6.find...原创 2020-03-16 18:30:04 · 575 阅读 · 0 评论 -
thinkphp6.0学习笔记之数据库的数据查询
数据库的数据查询一、单数据查询 1.Db::table()中table必须指定完整的数据表(包括前缀); 2.只查询一条数据:Db::table()->where('id',1)->find();//如果没有查询到值,返回nullDb::getLastSql();//返回一条最近查询的SQL原生语句输出结果:select *from 表名 limit 1; 2.还可以...原创 2020-03-16 18:02:55 · 1416 阅读 · 0 评论 -
thinkphp6.0学习笔记之启程2
一、控制器定义: 1. 控制器,即 controller,控制器文件存放在 controller 目录下 2.如果想改变系统默认的控制器文件目录,可以在 config 下 route.php 配置: 'controller_layer' => 'controllerxyz' 2. 类名和文件名大小写保持一致,并采用驼峰式(首字母大写); namespace...原创 2020-03-15 21:24:49 · 364 阅读 · 0 评论 -
thinkphp6.0学习笔记之启程1
thinkphp6.0入门一、配置要求: 1.集成环境这里采用 windows 结合 wamp,其它系统或环境满足版本要求即可; 2. 除了 PHP7.1+,还需要开启 PDO 数据库引擎和 MBstring 字符串扩展; 3. ThinkPHP6.0要求PHP版本是7.1+以上, 官方推荐7.3(目前最新版本是7.3.x) 4. ThinkPHP6.0 是目前框架正式版的最新版本,发布...原创 2020-03-15 20:21:49 · 353 阅读 · 0 评论