Files
2024-09-27 01:32:49 +08:00

86 lines
2.2 KiB
PHP

<?php
/*
* 菜单验证规则
* */
namespace app\admin\validate;
use think\Validate;
/**
* 菜单管理验证类
* Class Menu
* @package app\admin\validate
*/
class Menu extends Validate {
/**
* 验证规则
* @var array
*/
protected $rule = [
'id' => 'require|number|checkId',
'pid' => 'require|number',
'title' => 'require|max:10',
'href' => 'max:100',
'icon' => 'max:20',
'sort' => 'max:10|number',
'status' => 'require|in:0,1',
'remark' => 'max:250',
'field' => 'require',
'value' => 'require|max:30',
];
/**
* 错误提示
* @var array
*/
protected $message = [
'pid.require' => '上级菜单必须',
'pid.number' => '上级菜单数据有误',
'title.require' => '菜单名称必须',
'title.max' => '名称最多不能超过10个字符',
'href.max' => '链接最多不能超过100个字符',
'status.in' => '启用状态格式有误',
'sort.number' => '排序必须为数字',
'field.require' => '字段必须',
'value.require' => '修改值必须',
];
/**
* 应用场景
* @var array
*/
protected $scene = [
//添加菜单
'add' => ['pid', 'title', 'href', 'icon', 'sort', 'remark'],
//修改菜单
'edit' => ['id', 'pid', 'title', 'href', 'icon', 'sort', 'remark'],
//删除菜单
'del' => ['id'],
//更改菜单状态
'status' => ['id'],
//修改字段值
'edit_field' => ['id', 'field', 'value'],
];
/**
* 检测菜单是否存在
* @param $value
* @param $rule
* @param array $data
* @return bool|string
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
protected function checkId($value, $rule, $data = []) {
$menu = \app\admin\model\menu::where(['id' => $value])->find();
if (empty($menu)) return '暂无菜单数据,请稍后再试!';
return true;
}
}