php
文章平均质量分 54
龙华军
这个作者很懒,什么都没留下…
展开
-
23.Laravel集合的常用方法
collection = collect(['name'=>'Mr.Lee', 'gender'=>'男']);PS:相关的还有 every()、except()、only()、firstWhere()、last()等方法;$collection = collect([['男'=>1], ['女'=>1], ['男'=>3]]);'details'=>['gender'=>'男', 'age'=>100]]);['name'=>'Mr.Lee', 'gender'=>'男'],原创 2023-05-24 21:31:50 · 813 阅读 · 0 评论 -
22.Laravel集合的使用
处理数据集合的方法,可链式调用;7. 如果三十多个方法都没有你要的,还可以自定义方法,比如说所有英文大写;6. 这里我们把最常用的演示一遍,剩下的所有,可以自行参考手册方法列表;4. 除了数据库对象返回的数据集合之外,我们还可以自行创建数据集合;PS:下一节,我们会花一节课,把最常用的方法再运行一遍加深印象;2. 比如,我们从数据库得到的数据列表,它就是一种集合;3. 数据集合,提供了大量的方法方便我们进行各种操作;本节课我们来开始学习数据集合的创建和使用方法。//创建一个数据集合。原创 2023-05-24 21:31:12 · 696 阅读 · 0 评论 -
21.模型的访问器和修改器
3. 可以设置字段输出的类型,比如设置一个布尔型,输出时就是 true 和 false;PS:注意,如果 gender 之前已经有访问器修改过,上面的方法会得到修改过的结果;3. 我们也可以创建一个虚拟字段,用已有的数据字段进行整合,不过要进行数据追加;//访问器,前固定 get,后固定 Attribute,Gender 是字段名。2. 比如,我们在输出性别时,在性别左右加上括号,或给邮件转换为大写;1. 修改器,相对于访问器,是在写入的时候拦截,进行修改再写入;//修改器,写入数据时,将邮箱转换为大写。原创 2023-05-18 11:22:12 · 634 阅读 · 0 评论 -
20.模型的作用域
PS:我们可以将性别为男这个片段,封装成一个单独的方法,然后统一在这个模型下调用;PS:而在控制器端,并不需要做任何设置,即可自动添加 status=1 的条件;6. 当然,如果这个全局只是针对某个模块,并不需要创建一个全局类,直接闭包即可;5. 上面的方法比较死板,适合简单粗暴,如果想要灵活多变,支持传递参数;2. 而这个条件,可能只是在这个模型对应的数据表使用,别的表并不使用;5. 此时,还不能实现全局,因为需要在模型设置个开关,让其富有灵活性;原创 2023-05-18 11:21:29 · 459 阅读 · 0 评论 -
19.批量赋值和软删除
11. 如果开启了软删除,还需要强行真实的永久删除,可以使用 forceDelete()方法;5. 当开启了软删除功能,之前的删除操作,都会变成更新操作,给 deleted_at 赋值;9. 如果要对这个数据进行软删除的判断,是否是被软删除的,可以使用 trashed();6. 而当我们开启了软删除的功能后,此时通过正常的数据获取列表,会自动隐藏;1. 什么叫软删除?它相对于真实的删除,而并非真正的删除,只是隐藏了;//获取某个被软删除的数据(即使不是软删除的也可以搜索到)原创 2023-05-17 20:07:42 · 758 阅读 · 0 评论 -
18.模型的增删改
1. 新增方法如下,注意:默认模型接管 created_at 和 updated_at;6. 如果你是通过主键 id 删除,那使用 destroy(id)方法,免去查询操作;PS:必须在模型中定义批量赋值的可填充字段,否则无法生效;防止用户不小心设置新值;4. 使用 create()方法实现新增,但需要在模型端设置批量赋值的许可;2. 更新,只要是查找到一条数据的情况下使用 save()就是更新;本节课我们来开始学习数据库的模型的增删改的操作。5. 使用 delete()方法,可以删除数据;原创 2023-05-16 10:17:57 · 363 阅读 · 0 评论 -
17.模型的定义
12. 默认读取 database.php 配置的数据库连接,也可以在模型端局部更改;3. 而调用的时候,我们也知道表名要遵循它默认规则,修改为复数,或特定;1. 之前在查询构造器部分,把常用的数据库操作基本讲完,模型大体相同;4. 虽然安装了插件,但模型还是没有代码提示,可以通过安装插件解决;5. 其它查询方法基本和查询构造器一样,如果有不一样,参考错误提示;4. 系统假定你的主键为 id,如果你要修改默认主键,可以特定;2. 比如,我们要查询所有数据,直接使用模型::all()即可;原创 2023-05-16 10:17:38 · 446 阅读 · 0 评论 -
17.模型的定义
12. 默认读取 database.php 配置的数据库连接,也可以在模型端局部更改;3. 而调用的时候,我们也知道表名要遵循它默认规则,修改为复数,或特定;1. 之前在查询构造器部分,把常用的数据库操作基本讲完,模型大体相同;4. 虽然安装了插件,但模型还是没有代码提示,可以通过安装插件解决;5. 其它查询方法基本和查询构造器一样,如果有不一样,参考错误提示;4. 系统假定你的主键为 id,如果你要修改默认主键,可以特定;2. 比如,我们要查询所有数据,直接使用模型::all()即可;原创 2023-05-15 10:52:33 · 429 阅读 · 0 评论 -
16.构造器的增删改
'username'=>'李黑', 'password'=>'654321', 'details'=>'123']7. 更新数据时,可以使用自增 increment()和自减 decrement()方法;5. 使用 updateOrInsert()方法,可以先进行查找修改,如不存在,则新增;2. 使用 insertOrIgnore()方法,可以忽略重复插入数据的错误;3. 使用 insertGetId()方法,获取新增后的自增 ID;//参数 2:修改的内容(新增的内容)//忽略重复新增数据的错误。原创 2023-05-15 10:52:42 · 465 阅读 · 0 评论 -
15.构造器的 join 查询
3. 使用 crossjoin 交叉连接查询,会生成笛卡尔积,再用 distinct()取消重复;4. 如果你想要实现闭包查询,和 where 类似,只不过要用 on 和 orOn 方法;1. 使用 join 实现内联接的多表查询,比如三张表进行 inner join 查询;6. 使用 union()或 unionAll()方法实现两个查询的合并操作;PS:on()方法后面如果想要再增加筛选条件,可以追加 where();5. 使用 joinSub 实现子连接查询,将对应的内容合并在一起输出;原创 2023-05-14 13:05:02 · 403 阅读 · 0 评论 -
14.构造器的排序分组.子查询
/whereRaw 这句也可以替代为:whereColumn('books.user_id','users.id');//支持符号支持数组多个字段格式['create_time','>', 'update_time']5. 使用 skip()和 take()限制结果集,或使用 offset()和 limit();2. 也可以使用 where(字段,function())闭包,来实现一个子查询;//支持符号'create_time','>', 'update_time'原创 2023-05-14 13:04:27 · 291 阅读 · 0 评论 -
13.构造器的 where 派生查询
PS:三个参数支持大于小于之类的操作 orWhereDate('create_time','>', '2018-12-11')PS:这里还支持相关四种:whereYear/whereMonth/whereDay/whereTime,支持 or 前缀;->where('username', 'like', '%小%');//where() + orWhere 实现 or 条件查询。$query->where('gender', '女')->orWhere('gender', '女')原创 2023-05-13 11:10:11 · 619 阅读 · 0 评论 -
12.构造器的查询表达式
users = DB::table('users')->where('username', 'like', '%小%')->get();3. DB::raw()方法可以在 select()内部实现原生表达式,否则解析错误;2. addSelect()方法,可以在你基础的查询构造器上再增加想要显示的字段;//如果条件都是等于,查看 SQL 语句用->toSql()替换->get()1. where()查询,即条件查询,完整形式需要字段表达式和值三个;['gender', '=', '男']原创 2023-05-13 11:07:21 · 989 阅读 · 0 评论 -
11.构造器的查询.分块.聚合
2. 构造器查询提供了:count()、max()、min()、avg()和 sum()聚合查询;3. 构造器查询两个判断记录是否存在的方法:exists()和 doesntexists()方法;1. table()方法引入相应的表,get()方法可以查询当前表的所有数据;3. value(字段名)方法,可以获取到第一条数据的指定字段的值;4. find(id)方法,可以获取指定 id 的一条数据;2. first()方法,可以获取到第一条数据;//切割分块执行,每次读取 3 条,id 排序;原创 2023-05-12 22:12:17 · 978 阅读 · 0 评论 -
10.数据库配置入门
11. 前缀可以在 database.php 修改添加:laravel_,最终变为:laravel_users;2. 数据库的配置在 config/database.php,如果是本地可以直接配置.env 文件;//这种写法去掉了外围的数组下标 0。13. 可能会加 es,可能会加 ies,也可能是 child 编程 children 之类的;8. 使用 Eloquent ORM 模型来操作数据库,使用命令在 Http 目录下创建模型;10. 而我们真实的数据库表为:laravel_user,为何会这样?原创 2023-05-12 22:11:44 · 1294 阅读 · 0 评论 -
09.表单伪造和 CSRF 保护
3. 表单页以 post 发送,路由也使用 post 接受,以下表单提交会出现 419 错误;2. 先在 TaskController 创建两个方法,一个表单页,一个接受表单数据路由;5. 表单可以实现 POST 提交方式,那其它提交方式该如何实现呢?4. 这是为了避免被跨站请求伪造攻击,框架提供了 CSRF 令牌保护,请求时验证;用户名:本节课我们来开始学习表单伪造和 CSRF 保护的功能。原创 2023-05-11 12:10:26 · 614 阅读 · 0 评论 -
08.资源嵌套.浅嵌套.自定义
return '编辑博文下的评论,博文 id:'.$blog_id.',评论 id:'.$comment_id;7. 而实际上,每个 id 都是独立唯一的,并不需要父 id 和子 id 同时存在;8. 为了优化资源嵌套,通过路由方法->shallow()实现浅层嵌套方法;2. 比如开发过博客系统,留言帖子系统之类,具有类似思维,否则你懂的..;本节课我们来开始学习控制器的资源嵌套功能、浅嵌套以及资源自定义。5. 以上需求,可以通过嵌套资源路由来实现这个功能;return '评论 id.'.$id;原创 2023-05-11 12:09:45 · 514 阅读 · 0 评论 -
07.资源控制器
PUT/PATCH blogs/{blog} update() blogs.update 从编辑页中接受处理。http://localhost:8000/blogs/10/edit //可以访问到 edit 方法。GET blogs/create create() blogs.create 创建页面(表单页)GET blogs/{blog}/edit edit() blogs.edit 编辑(表单页)//API 资源,并不需要 HTML 页面(create,edit),会排除。原创 2023-05-10 20:01:54 · 916 阅读 · 0 评论 -
06. 响应设置和重定向
/跳转到 task/url。原创 2023-05-10 20:00:29 · 962 阅读 · 0 评论 -
05.回退.当前路由.单行为
因为继承基类后,可以使用基类的方法,比如中间件等;4. 如果你想要定义一个只执行一个方法的控制器,可以使用单行为控制器;本节课我们来开始学习路由和控制器的一些方法:回退、当前路由、单行为;1. 之前的课程,我们简单的创建和定义了控制器,并继承了控制器基类;6. 单行为控制器,路由定义就不需要指定特定的方法,指定控制器即可;7. 单行为控制器只是语义上的单行为,并没有限制创建更多方法访问;2. 可以使用回退路由,让不存在的路由自动跳转到你指定的页面去;//返回当前路由指向的方法。//返回当前路由的名称。原创 2023-05-09 11:59:18 · 873 阅读 · 0 评论 -
04. 路由命名和分组
Route::group(['middleware'=>'中间名'], function () {});Route::middleware(['中间件'])->group(function () {});2. 在控制器区域,使用助手函数 route()来获取路由生成的 URL 地址;PS:如果需要更改成/task/10 模式,路由需要相应更改 task/{id}//生成 url 地址,http://localhost:8000/task。2. 可以将中间件作用域路由分组中,有两种写法,至于中间件?原创 2023-05-09 11:58:44 · 894 阅读 · 0 评论 -
03. 路由参数.重定向.视图
/参数 2:view,resources/views/task.blade.php。2. 使用视图路由,有三个参数:1.URI(必);1. 在使用视图路由之前,我们先要创建一个视图(MVC)中的 V 部分;//参数 1:URI,localhost:8000/task。//这里 view()的参数 1 是视图名称。//参数 3:传参,{{$id}}原创 2023-05-08 20:41:54 · 518 阅读 · 0 评论 -
02. 路由的定义和控制器
http://localhost:8000/index 7. 在路由定义上,我们采用了::get()这个方法,它接受的就是 GET 提交;8. ::post()、::put()、::delete()是表单和 Ajax 的提交接受方式;2. 简单点理解,就是为了提供访问程序的 URL 地址,所做的一些设置工作;13. 那么闭包的$id,可以接受 url 传递过来的 5,最终输出 5;6. 我们创建一个路由,让它返回一段信息,并设置响应的 url 地址;原创 2023-05-08 20:41:11 · 904 阅读 · 0 评论 -
01. Laravel 入门和安装
那么对于这种升级策略来说,基础语法几乎不会有太多变动,不会增加学习成本;也正是如此,课程已经不写什么版本了,用最新版本基本无碍;基础篇基本框架的核心内容语法等,扩展篇主要是工具集。更多的配置和问题,参考官方手册安装篇查阅即可;框架内容较多,课程要分为两个篇幅,基础篇和扩展篇。到底怎么读,由于不是真实的单词,导致争论较多。开始进入到版本化方案,每六个月发布一次版本;这个版本,后来就开始疯狂升级,升级了几年现在。来进行安装,官网也提供了安装器,只不过有点问题。框架的学习,主要了解框架的安装和配置信息。原创 2023-05-07 22:51:56 · 426 阅读 · 0 评论 -
Layui 入门和安装
1. Layui(类 UI),是一款遵循原生 HTML/CSS/JS 书写的,门槛极低的 UI 框架;2. 它有别于现在的 MVVM 底层的 UI 框架,返璞归真,为服务端程序员量身打造;3. 无须各种前端工具配置,不需要 Node 环境,只针对浏览器本身,拿来就用;4. 它的应用场景主要 PC 端的后台系统 UI,以及前台 UI 的快速开发;5. 学习 Layui 基础为:HTML5/CSS/JavaScript/ES6+,再有一门后端语言最佳;原创 2023-04-16 10:40:46 · 782 阅读 · 0 评论 -
Thinkphp6.0事件
Thinkphp6.0使用一下系统提供的事件。原创 2023-04-12 11:24:20 · 941 阅读 · 0 评论 -
Thinkphp6.0服务系统
Thinkphp6.0学习一下要使用一下系统提供的服务系统。原创 2023-04-12 11:19:40 · 601 阅读 · 0 评论 -
Thinkphp6.0服务系统
Thinkphp6.0要使用一下系统提供的服务系统。原创 2023-04-11 10:27:06 · 621 阅读 · 0 评论 -
Thinkphp6.0中间件.下
Thinkphp6.0使用一下路由中间件,以及控制器中间件。原创 2023-04-11 10:28:17 · 722 阅读 · 0 评论 -
Thinkphp6.0中间件.上
中间件的用法,定义一下中间件。原创 2023-04-10 11:03:30 · 1000 阅读 · 0 评论 -
Thinkphp 6.0日志处理
Thinkphp 6.0日志处理的功能,包括配置日志和写入日志等。原创 2023-04-10 10:54:55 · 1593 阅读 · 0 评论 -
Thinkphp 6.0异常处理
Thinkphp 6.0异常处理的方式,以及如何设置错误页面。原创 2023-04-10 10:53:10 · 880 阅读 · 0 评论 -
Thinkphp 6.0图像处理功能
图像处理功能,这功能是外置的,并非系统内置。原创 2023-04-09 11:38:31 · 1346 阅读 · 0 评论 -
Thinkphp 6.0分页功能
Thinkphp 6.0系统提供的分页方法,如何使用这个方法进行分页。原创 2023-04-09 11:30:28 · 1091 阅读 · 0 评论 -
Thinkphp 6.0验证码功能
Thinkphp 6.0学习一下验证码功能,这功能是外置的,并非系统内置。原创 2023-04-09 11:19:41 · 618 阅读 · 0 评论 -
Thinkphp 6.0多语言
Thinkphp 6.0如何配置的多语言功能,并实现调用方法。原创 2023-04-09 11:20:55 · 1555 阅读 · 1 评论 -
Thinkphp 6.0的上传功能
Thinkphp 6.0系统提供的上传方法,如何使用这个方法进行文件上传。原创 2023-04-08 22:52:14 · 2376 阅读 · 0 评论 -
Thinkphp 6.0缓存功能
Thinkphp 6.0系统提供的缓存功能,实现缓存的写入和读取。原创 2023-04-08 22:43:54 · 2177 阅读 · 1 评论 -
Thinkphp 6.0的Cookie
Thinkphp 6.0系统提供的 Cookie 存储功能,以及助手函数。原创 2023-04-08 22:43:59 · 484 阅读 · 0 评论 -
Thinkphp 6.0的Session
Thinkphp 6.0下系统提供的 Session 存储功能,以及二维和助手函数。原创 2023-04-07 12:26:48 · 2016 阅读 · 0 评论