\App\Http\Requests\AdminDataDictRequest

字典请求

职责:一个类承载类型/数据两个场景,按路由 action 区分。基础规则全部 nullable; createType/updateType/createData/updateData 各自在 withValidator 里 追加 required 与 code 唯一性规则。

┌────────────────── 分区导航(按此顺序阅读)──────────────────┐ 分区 1 · 校验规则 rules 分区 2 · 错误文案 messages 分区 3 · 条件校验 withValidator 分区 4 · 内部辅助 applyCreateTypeRules / applyUpdateTypeRules / applyCreateDataRules └────────────────────────────────────────────────────────────┘

Summary

Methods
Properties
Constants
rules()
messages()
withValidator()
No public properties found
No constants found
statusRule()
sortRule()
remarkRule()
nameRule()
codeRule()
uniqueRule()
commonMessages()
No protected properties found
N/A
applyCreateTypeRules()
applyUpdateTypeRules()
applyCreateDataRules()
No private properties found
N/A

Methods

rules()

rules() : array

校验规则。

意图:code 走小写字母开头正则(与前端 validators/dict.ts 同规); name/sort/status/remark 走公共规则;is_tree 仅 0/1;type_id 须 存在于 td_sys_dict_type;parent_id 可空非负整数;label/value 可空 字符串(上限 64);css_class 可空字符串(上限 32)。

Returns

array —

messages()

messages() : array

错误文案。

意图:公共字段走参数化文案,字典特有字段(编码/名称/类型/显示值/存储值) 补充中文提示。

Returns

array —

withValidator()

withValidator(\Illuminate\Validation\Validator  $validator) : void

按路由 action 分派条件校验。

意图:createType→applyCreateTypeRules、updateType→applyUpdateTypeRules、 createData→applyCreateDataRules,其余 action 不附加。

Parameters

\Illuminate\Validation\Validator $validator

statusRule()

statusRule() : string

状态规则。

生成 Laravel 规则:nullable(可空)、integer(整数)、in:0,1(仅启用/停用两态)。

Returns

string —

sortRule()

sortRule() : string

排序号规则。

生成 Laravel 规则:nullable(可空)、integer(整数,用于升序排序)。

Returns

string —

remarkRule()

remarkRule() : string

备注规则。

生成 Laravel 规则:nullable(可空)、string(字符串)、max:255(最长 255 字符)。

Returns

string —

nameRule()

nameRule(int  $max = 64) : string

名称规则。

生成 Laravel 规则:nullable(可空)、string(字符串)、max(上限按实体可配,默认 64)。

Parameters

int $max

Returns

string —

codeRule()

codeRule(int  $max = 32) : string

编码规则。

生成 Laravel 规则:nullable(可空)、string、max(可配,默认 32)、 regex(字母开头 + 字母/数字/下划线,前后端同正则)。

Parameters

int $max

Returns

string —

uniqueRule()

uniqueRule(string  $table, string  $column, ?int  $ignoreId = null, ?callable  $where = null) : \Illuminate\Validation\Rules\Unique

同表同列唯一规则。

生成 Laravel 规则:Rule::unique(table, column) 的 unique 约束;ignore 忽略 自身 id(update 场景不与自己冲突);$where 用于 (type, code) 组合唯一等场景。

Parameters

string $table
string $column
?int $ignoreId
?callable $where

Returns

\Illuminate\Validation\Rules\Unique —

commonMessages()

commonMessages(string  $entity, int  $nameMax = 64) : array

通用字段中文文案。

实体名参数化(如「岗位」→「岗位编码不能超过 32 个字符」),返回字段规则 对应的 messages 数组,供各 Request 与实体特有文案合并。

Parameters

string $entity
int $nameMax

Returns

array —

applyCreateTypeRules()

applyCreateTypeRules(\Illuminate\Validation\Validator  $validator) : void

创建类型:code/name/is_tree 必填 + code 全表唯一

Parameters

\Illuminate\Validation\Validator $validator

applyUpdateTypeRules()

applyUpdateTypeRules(\Illuminate\Validation\Validator  $validator) : void

更新类型:提交 code 时唯一性忽略自身

Parameters

\Illuminate\Validation\Validator $validator

applyCreateDataRules()

applyCreateDataRules(\Illuminate\Validation\Validator  $validator) : void

创建数据项:type_id/type_code/label/value 必填

Parameters

\Illuminate\Validation\Validator $validator