'required|string|max:60', 'code' => [ 'required', 'string', 'max:60', 'regex:/^[a-zA-Z0-9_]+$/', ], 'status' => 'sometimes|integer|in:1,2', 'sort' => 'required|integer', 'remark' => 'nullable|string|max:255', 'permissions' => 'sometimes|array', 'permissions.*' => 'string|exists:admin_menu,name', ]; if ($this->isCreate()) { $rules['code'][] = 'unique:admin_role,code'; } if ($this->isUpdate()) { $rules['code'][] = 'unique:admin_role,code,' . $this->route('id'); } return $rules; } /** * @return array */ public function messages(): array { return parent::messages(); } protected array $scenes = [ 'update' => [ 'code', 'name', 'status', 'sort', 'remark', ], 'create' => [ 'code', 'name', 'status', 'sort', 'remark', ], 'batch_grant_permission' => [ 'permissions', 'permissions.*', ] ]; }