user() !== null; } /** * 获取更新座驾验证规则。 * * @return array|string> */ public function rules(): array { $ride = $this->route('ride'); return [ 'name' => ['required', 'string', 'max:100'], 'slug' => ['required', 'string', 'max:100', 'regex:/^ride_[a-z0-9_]+$/', Rule::unique('rides', 'slug')->ignore($ride?->id)], 'effect_key' => ['required', 'string', 'max:50', 'regex:/^[a-z0-9_]+$/', Rule::unique('rides', 'effect_key')->ignore($ride?->id)], 'icon' => ['required', 'string', 'max:20'], 'description' => ['nullable', 'string', 'max:500'], 'price' => ['required', 'integer', 'min:0'], 'duration_days' => ['required', 'integer', 'min:1'], 'welcome_message' => ['nullable', 'string', 'max:255'], 'sort_order' => ['required', 'integer', 'min:0'], 'is_active' => ['boolean'], ]; } /** * 获取更新座驾中文错误提示。 * * @return array */ public function messages(): array { return [ 'slug.regex' => '座驾标识必须使用 ride_ 开头,例如 ride_j35。', 'effect_key.regex' => '特效 key 只能包含小写字母、数字和下划线。', 'duration_days.min' => '使用天数至少为 1 天。', ]; } }