Files
MrleeAdmin/backend/app/adminapi/validate/system/PostValidate.php
T
2026-08-31 11:33:59 +08:00

86 lines
1.9 KiB
PHP

<?php
declare(strict_types=1);
/**
*+------------------
* madong
*+------------------
* Copyright (c) https://gitee.com/motion-code All rights reserved.
*+------------------
* Author: Mr. April (405784684@qq.com)
*+------------------
* Official Website: http://www.madong.tech
*/
namespace app\adminapi\validate\system;
use app\model\org\Post;
use core\base\BaseValidate;
/**
* 用户角色验证器
*/
class PostValidate extends BaseValidate
{
/**
* 定义验证规则
*/
protected array $rule = [
'dept_id' => 'require',
'code' => 'require|alphaNum|unique',
'name' => 'require|max:16',
'sort' => 'number',
'enabled' => 'require',
];
/**
* 定义错误信息
*/
protected array $message = [
'code.require' => '职位标识必须填写',
'code.alphaNum' => '职位标识只能由英文字或者数字母组成',
'code.unique' => '职位代码已被占用',
'name.require' => '职位名称必须填写',
'name.max' => '职位名称最多不能超过16个字符',
'enabled' => '状态必须填写',
];
/**
* 重复验证
*
* @param $value
* @param $rule
* @param array $data
*
* @return bool
*/
protected function unique($value, $rule, array $data = []): bool
{
$query = Post::where('code', $value);
// 如果是更新操作,可以排除当前记录
if (isset($data['id'])) {
$query->where('id', '<>', $data['id']);
}
return $query->count() === 0;
}
/**
* 定义场景
*/
protected array $scene = [
'store' => [
'code',
'name',
'sort',
'enabled',
],
'update' => [
'code',
'name',
'sort',
'enabled',
],
];
}