[ 'author', 'version', 'cover', 'key', 'desc', 'title', 'icon', 'type', ], 'update' => [ 'author', 'version', 'cover', 'desc', 'title', 'icon', 'type', 'id', ], ]; /** * 验证规则 * * @return array */ public function rules(): array { $id = request()->route->param('id'); return [ 'author' => 'string', 'version' => 'string', 'cover' => 'string', 'updated_at' => 'integer', 'id' => 'integer|string', 'key' => ['required', 'max:50', Rule::unique(Plugin::class, 'key')->ignore($id, 'id')], 'desc' => 'string', 'support_app' => 'required|string', 'installed_at' => 'required|integer', 'title' => 'required|string', 'icon' => 'string', 'status' => 'required|integer', 'type' => 'required|string', 'created_at' => 'integer', 'variables' => 'string', ]; } /** * 错误信息 * * @return array */ public function message(): array { return [ 'author.required' => '作者必须填写', 'author.string' => '作者必须是字符串', 'version.required' => '版本号必须填写', 'version.string' => '版本号必须是字符串', 'cover.required' => '封面必须填写', 'cover.string' => '封面必须是字符串', 'updated_at.integer' => '更新时间必须是整数', 'id.integer' => '主键必须是整数或字符串', 'id.string' => '主键必须是整数或字符串', 'key.required' => '插件标识必须填写', 'key.string' => '插件标识必须是字符串', 'key.unique' => '插件Key已被占用', 'desc.string' => '插件描述必须是字符串', 'support_app.required' => '插件支持的应用空表示通用插件必须填写', 'support_app.string' => '插件支持的应用空表示通用插件必须是字符串', 'installed_at.required' => '安装时间必须填写', 'installed_at.integer' => '安装时间必须是整数', 'title.required' => '插件名称必须填写', 'title.string' => '插件名称必须是字符串', 'icon.required' => '插件图标必须填写', 'icon.string' => '插件图标必须是字符串', 'status.required' => '状态必须填写', 'status.integer' => '状态必须是整数', 'type.required' => '插件类型app,plugin必须填写', 'type.string' => '插件类型app,plugin必须是字符串', 'created_at.integer' => '创建时间必须是整数', 'variables.string' => '必须是字符串', ]; } }