5
TP6官方文档中只提供部分数据库事件,不如模型事件齐全;当需要多Db和Model的增删改成都进行监听时,只能使用Db事件,而Db事件不齐全,相关业务需求无法实现。 (think\db\PDOConnection)新增before_update事件示例:
/**
* 更新记录
* @access public
* @param BaseQuery $query 查询对象
* @return integer
* @throws PDOException
*/
public function update(BaseQuery $query): int
{
$query->parseOptions();
$flag = $this->db->trigger('before_update', $query);
if($flag === true) return 0;
// 生成UPDATE SQL语句
$sql = $this->builder->update($query);
// 执行操作
$result = '' == $sql ? 0 : $this->pdoExecute($query, $sql, $query->getBind());
if ($result) {
$this->db->trigger('after_update', $query);
}
return $result;
}