ThinkPHP学习笔记

架构

事件

如果希望统一添加事件前缀标识,可以定义eventPrefix属性。

数据库

1、find() 返回的是array数组,而select() 返回的是collection数据集对象。

2、removeOption() 方法可以清理掉上查询保留的值。

3、exp查询 需要依照SQL语句的写法来进行拼接。

4、根据之前的课程中,条件字符串复杂组装,比如使用 exp 了,就使用 raw()方 法;而且数据的增加、减少都可以使用Db::Row();

5、如果有多个 where,并且 where 条件是分离的 m a p , 而 map,而 mapmap 本身有多个条件; 那么 m a p 条 件 如 果 需 要 先 执 行 出 结 果 , 再 和 后 续 条 件 判 断 , 也 就 是 加 上 括 号 ; 那 么 , 需 要 对 这 个 map 条件如果需要先执行出结果,再和后续条件判断,也就是加上括号;那么,需要对这个 mapmap 变量,再加上一个中括号处理优先级。

6、whereRaw可以直接写where语句,比较暴力。

7、whereColumn 用于比较两个字段。

8、whereFieldName()方法,查询某个字段的值,注意 FileName 是字段名; Db::name(‘user’)->whereEmail(‘xiaoxin@163.com’)->find(); Db::name(‘user’)->whereUsername(‘蜡笔小新’)->find(); //如果字段是 create_time,则 whereCreateTime,驼峰式写法。

事务处理

1、数据库的表引擎需要是 InnoDB 才可以使用,如果不是调整即可

模型

  1. 强制更新数据(无论有没有变化)需要在save前加上force方法。

  2. allowField无法对Db::Row起到限制,Db::Row中的内容一定会运行。

  3. 同时定义了模型获取器和动态获取器,那么动态获取器的优先级更高。

  4. scope可以连缀使用,同时使用好几个scope

  5. 在搜索器中进行调用(withsearch)使用的是中括号。

  6. 使用json数据时需要强调json字段 eg: json([‘list’])

  7. 一对一和一对多的区别主要是一对一只能查出一条数据,而一对多可以类似于数组一样查出多条数据。

  8. profile不加括号时,就当作一个属性来用,可以将信息查询出来,而加括号后就成为了一个方法。不加括号后,在按条件进行查找时,只是把不符合的数据隐藏掉了(数组的下标没有变),而加上括号后会对数据进行重新的组合成数组。

  9. 关联统计的输出采用“关联方法名”_count,这种结构输出。

路由

  1. 开启强制路由后,则没法使用原来的路径。
  2. 定义路由时,如果路由地址有变量的话,路由规则也一定要有对应的。

验证

  1. 验证包括验证类验证、场景验证、独立验证。

日志

try…catch 抛出异常后,不会在日志中显示了

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dream_Xu0526

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值