// +---------------------------------------------------------------------- declare (strict_types = 1); namespace addon\haonav\model; use ywxapp\model\BaseModel; class Category extends BaseModel { protected function getOptions(): array { // 所有的参数配置统一返回 return [ 'strict' => false, 'name' => 'haonav_category', // 'connection' => '', // 'query' => [], // 'type' => [], // 'hidden' => [], // 'visible' => [], // 'append' => [], 'autoRelation' => [], 'createTime' => 'create_at', 'updateTime' => 'update_at', 'dateFormat' => 'Y-m-d H:i:s', ]; } public function links() { return $this->hasMany(Links::class, 'cid', 'id'); } /** * 删除前保护:存在子分类或下属链接时禁止删除,避免产生孤儿数据 * @param \think\Model $model * @throws \think\Exception */ public static function onBeforeDelete($model) { $childCount = self::where('pid', $model->id)->count(); if ($childCount > 0) { throw new \think\Exception('该分类下还存在 ' . $childCount . ' 个子分类,请先处理子分类'); } $linkCount = \addon\haonav\model\Links::where('cid', $model->id)->count(); if ($linkCount > 0) { throw new \think\Exception('该分类下还存在 ' . $linkCount . ' 个链接,请先移走或删除这些链接'); } } }