getKey(); $rules = [ 'blog_category_id' => ['sometimes', 'integer', 'exists:blog_categories,id'], 'slug' => [ 'sometimes', 'string', 'max:255', Rule::unique('blog_posts', 'slug')->ignore($postId), ], 'banner' => ['sometimes', 'nullable', 'string', 'max:255'], 'published_at' => ['sometimes', 'nullable', 'date'], 'is_published' => ['sometimes', 'boolean'], 'title' => ['sometimes', 'array'], 'title.de' => ['required_with:title', 'string', 'max:255'], 'title.en' => ['nullable', 'string', 'max:255'], 'content' => ['sometimes', 'array'], 'content.de' => ['required_with:content', 'string'], 'content.en' => ['nullable', 'string'], 'excerpt' => ['sometimes', 'array'], 'excerpt.de' => ['nullable', 'string'], 'excerpt.en' => ['nullable', 'string'], 'meta_title' => ['sometimes', 'array'], 'meta_title.de' => ['nullable', 'string', 'max:255'], 'meta_title.en' => ['nullable', 'string', 'max:255'], 'meta_description' => ['sometimes', 'array'], 'meta_description.de' => ['nullable', 'string'], 'meta_description.en' => ['nullable', 'string'], 'translations' => ['sometimes', 'array'], ]; if ($action === 'create') { $rules['blog_category_id'] = ['required', 'integer', 'exists:blog_categories,id']; $rules['slug'] = ['required', 'string', 'max:255', Rule::unique('blog_posts', 'slug')]; $rules['title'] = ['required', 'array']; $rules['title.de'] = ['required', 'string', 'max:255']; $rules['content'] = ['required', 'array']; $rules['content.de'] = ['required', 'string']; } return $rules; } public static function allowedFields(string $action): array { return [ 'blog_category_id', 'slug', 'banner', 'published_at', 'is_published', 'title', 'content', 'excerpt', 'meta_title', 'meta_description', 'translations', ]; } }