\App\Http\Requests\AdminUserConfigRequest

用户请求

职责:校验用户新建/更新/导入入参——用户名/密码/工号/姓名/邮箱/手机/状态/ 超管/空间配额/公共目录维护/头像/导入文件;用户名、工号、邮箱、手机的 唯一性按 store/update/import 场景分派到内部辅助方法追加。

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

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
applyStoreRules()
applyUpdateRules()
applyImportRules()
No private properties found
N/A

Methods

rules()

rules() : array

校验规则。

意图:用户名走 3-20 位字母数字下划线正则(与前端 validateUsername 一致); 密码长度下限走安全配置;工号/姓名/邮箱/手机各自约束;status 走公共 规则;is_super/is_file_maintainer 仅 0/1;quota_mb 空间配额区间 -1~1048576;头像为文件 id;file 为 CSV 导入文件。

Returns

array —

messages()

messages() : array

错误文案。

意图:公共字段走参数化文案,用户特有字段(用户名/密码/工号/邮箱/手机/ 超管/头像/导入文件)补充中文提示;密码下限文案从安全配置动态读取。

Returns

array —

withValidator()

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

按路由方法分派条件校验。

意图:store→applyStoreRules、update→applyUpdateRules、import→applyImportRules, 其余方法不附加条件校验。

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 —

applyStoreRules()

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

store 场景:username/密码必填,username 全表唯一,工号/邮箱/手机非空时唯一。

Parameters

\Illuminate\Validation\Validator $validator

applyUpdateRules()

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

update 场景:username/email/phone 唯一性忽略自身,工号非空时唯一且忽略自身。

Parameters

\Illuminate\Validation\Validator $validator

applyImportRules()

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

import 场景:file 必填且上限 10MB(mimes 已在基础 rules)。

Parameters

\Illuminate\Validation\Validator $validator