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.三元运算符在模板里的使用

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

 <td>{$vo.status == 1 ? '正常': '<span style="color: red">禁用</span>'}</td>
 {if $vo.is_super == 1}<td style="color: red">超级管理员</td>{else/}<td>普通管理员</td>{/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();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一 Activity 1 Activity 生命周期 1.1 Activity 的四种状态 running 当前...
    _执_念__阅读 10,667评论 0 91
  • 【百度云搜索,搜各种资料:http://bdy.lqkweb.com】 【搜网盘,搜各种资料:http://www...
    攻城狮笔记阅读 1,690评论 0 7
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,539评论 0 5
  • 0.Android手机操作系统的四层架构? Applications , Application Framewor...
    lucas777阅读 7,952评论 0 16
  • 2018.4.14 Day51---【阅读一小时】 第一,整理办公桌和文档,减少寻找文件的时间。 第二,使用办公用...
    Karen娟儿阅读 235评论 0 0