wang jun 74cdc34920 first add 3 năm trước cách đây
..
readme.md 74cdc34920 first add 3 năm trước cách đây
update.sql 74cdc34920 first add 3 năm trước cách đây

readme.md

数据库操作升级注意:

模型后缀

如果之前开启了类库后缀功能的话,你必须在模型类里面明确指定name属性。 所有模型文件加上$name属性用于指定表名

模型的allowFiled(true)用法取消了,统一传入实际字段名

Db::name($name)用法不建议使用了,统一使用模型操作数据库

join('__TABLE_NAME t')用法取消了

统一使用不带前缀的表名,如:join(no_prefix_table_name t)

取消dbmodel助手函数

这两个助手函数5.1版本已经不再建议使用了,6.0版本已经废弃掉这两个助手函数,请直接使用\think\facade\Db类静态方法和实际的模型类调用。

取消setInc/setDec方法

取消Query类的setInc/setDec方法,统一使用inc/dec方法替代。例如:

Db::name('user')->where('id', 1)
->inc('exp')
->dec('score')
->update();

取消join方法的批量操作

join方法不再支持批量操作多个表,如果你使用了join方法批量操作,需要改成每个表单独调用一次join方法。

取消setField方法

取消Query类的setField方法,请直接使用data方法或者update方法。

取消查询eq/neq/gt/lt/egt/elt表达式

由于存在两种用法,并且不够直观,全部统一为更直观的用法。

下面的用法不再支持

Db::name('user')->where('id', 'egt', 1)
->where('status', 'neq' ,1)
->select();

统一使用

Db::name('user')->where('id', '>=', 1)
->where('status', '<>' ,1)
->select();

取消whereOr等方法传入Query对象

因为Query对象查询只能使用一次,除了where方法本身可以传入Query对象外,其它的所有where查询方法(例如whereOr/whereExp等)都不再支持传入Query对象。

取消了模型的get/all方法

无论使用Db类还是模型类查询,全部统一使用find/select方法,取消了之前模型类额外提供的get/all方法。同时取消的方法还包括getOrFail/allOrFail

取消全局查询范围base方法

取消模型类的全局查询范围base方法,改由使用globalScope属性定义(数组)需要全局查询的查询范围方法。

取消模型自动完成

模型的自动完成功能已经取消,请使用模型事件代替。

模型save方法调整

模型类的save方法不再支持where参数。

其它升级注意

  • url()方法输出不再是字符串(待考虑是否优化)

删除关联类的setEagerlyType方法

一对一关联无需在定义关联的时候指定为JOIN查询,在查询的时候直接使用withJoin方法即可使用JOIN

更多注意问题

参见https://www.kancloud.cn/manual/thinkphp6_0/1037654