5.0.0 - 严重 - 未处理
TP版本6.0.7如果注册了before_select和before_find事件,注册的闭包无返回值,会报一个
#0 [0]TypeError in ModelRelationQuery.php line 463
的异常
查到think-orm的think\db\PDOConnection的select和find方法均有返回值是否为一个非空结果集的判断,在注册的闭包中是没有返回值的,实际情况却是判定结果集不为空。
实际出错的位置是fr
public function trigger(string $event, $params = null, bool $once = false)应改为public function trigger(string $event, $params = null, bool $once = true)在未修复这个BUG之前,如果需要使用数据库的before_select和before_find事件,可以重写一个类继承think\Db并覆盖trigger方法 public function trigger(string $event, $params = null, bool $once = false) {
parent::trigger($event, $params, $once);
}
//或者
public function trigger(string $event, $params = null, bool $once = true) {
return parent::trigger($event, $params, $once);
}并在provider.php的配置文件中加入'think\Db' => '新类名' 