['nullable', 'string', 'max:255'], 'categories' => ['required', 'array', 'min:1'], 'categories.*.id' => ['required', 'string', 'max:50'], 'categories.*.title' => ['required', 'string', 'max:255'], 'categories.*.subItems' => ['required', 'array'], 'categories.*.subItems.*.id' => ['required', 'string', 'max:50'], 'categories.*.subItems.*.name' => ['required', 'string', 'max:255'], 'options' => ['nullable', 'array'], ]; } public function messages(): array { return [ 'categories.required' => __('validation.required', ['attribute' => '카테고리']), 'categories.min' => __('validation.min.array', ['attribute' => '카테고리', 'min' => 1]), 'categories.*.id.required' => __('validation.required', ['attribute' => '카테고리 ID']), 'categories.*.title.required' => __('validation.required', ['attribute' => '카테고리 제목']), 'categories.*.subItems.required' => __('validation.required', ['attribute' => '점검항목']), 'categories.*.subItems.*.id.required' => __('validation.required', ['attribute' => '항목 ID']), 'categories.*.subItems.*.name.required' => __('validation.required', ['attribute' => '항목명']), ]; } }