ThinkPHP5相关知识点记录

1.分页操作paginate()

方法使用:参数是每页显示几条数据

后台代码:


前台代码:用后台传过来的变量,调用render()方法

实际效果:

2.多表关联with(),belongsTo()多对一

comment表:评论表
article表:文章表
前台评论表显示
image.png

comment(评论表)中,有个article_id代表此评论属于哪篇文章
前台显示需要获取到article(文章表)title
comment(评论表)模型里多对一使用belongsTo()


comment(评论表)控制器里:使用with('article')关联文章表

这里就使用到关联的article表里的title字段

这是另一个一对多方法使用:hasMany()

3.表联合删除

以上面的为例,如果删除文章表,那对应的评论也应该被删除,这时候就需要文章表关联一下评论表

article(文章表)模型里,定义一个一对多的方法


article(文章表)控制器里关联comment表,且一起删除together()

4.验证器使用,整体的数据传递过程

验证思路:数据提交后传递的路线:html -> controller -> model -> validate

html:提交数据
controller:整理数据
model:处理数据
validate:验证数据
表单:


提交:ajax方法

把数据整理好,传给adminmodel的register()方法

admin模型先将数据给验证器的register场景验证

验证器里先定义规则,再写验证场景,不同场景,验证不同数据

5.验证码的captcha

表单里,写个input:提交验证码值和img:显示验证码


控制器的createVerify()方法里传入验证码的配置,返回一个能在前端显示的图

前端js里面写一个验证码刷新方法,参数是为了防止页面缓存,导致没法刷新新的图

6.三元运算符在模板里的使用

注意:模板里的代码,得用''括起来

 {$vo.status == 1 ? '正常': '禁用'}
 {if $vo.is_super == 1}超级管理员{else/}普通管理员{/if}

7.关联表

注意:


image.png

7.关联表with()设置属性

方式1:闭包:对关联预加载的表里的属性进行设置,
with(['comment'=>function($query){$query->order('create_time','desc');}])

方式2:关联2个1级,1个2级, 再根据2级里的字段,进行排序
一级:img,property
二级:imgUrl(img.imgUrl)

image.png

8.事务

注意:为了数据库操作的安全严谨性
开启事务Db::startTrans();
数据操作........
提交事务Db::commit();
数据回滚Db::rollback();

你可能感兴趣的:(ThinkPHP5相关知识点记录)