3
我关闭全局查询,只是想关闭我在模型里定义的base的全局条件,并没有想关闭软删除查询条件。 看了下源码是把软删除划分到了是否调用全局查询范围里,控制base的查询条件和软删除查询条件的状态能不能分开?
我关闭全局查询,只是想关闭我在模型里定义的base的全局条件,并没有想关闭软删除查询条件。 看了下源码是把软删除划分到了是否调用全局查询范围里,控制base的查询条件和软删除查询条件的状态能不能分开?
5.0额外提供了useSoftDelete方法便于独立操作 5.1的软删除已经和base分开了
@liu21st ThinkPHP V5.1.0RC3 Model 源码第241行
if ($useBaseQuery) {
// 软删除
if (method_exists($this, 'getDeleteTimeField')) {
$field = $this->getDeleteTimeField(true);
$query->useSoftDelete($field);
}
// 全局作用域
if (method_exists($this, 'base')) {
call_user_func_array([$this, 'base'], [ & $query]);
}
}
你确定已经分开了?
理解错你的意思了,5.1的软删除定义不会受base定义的影响 但全局查询范围依然是和软删除一起关闭,因为内置的方法调用需要,比较保险的方法是你独立调用 useSoftDelete方法