コントローラー内のバリデーション処理の記述方法に誤りがありました。
修正いただければと思います。詳しくは動画にて解説しています。
1.skills/app/Http/Controllers/SkillController.phpのupdateメソッドの記述を変更する。
before
$validated = $request->validate([
'skill_name' => 'required|max:255',
'skill_status' => ['required', Rule::in(SKill::SKILL_STATUS_ARRAY)],
'remarks' => 'max:1000',
'experience_years' => 'numeric|max:99',
]);
if($validated->fails()) {
return redirect('skill')->withErrors($validated)->withInput();
}
↓
after
$validator = Validator::make($request->all(), [
'skill_name' => 'required|max:255',
'skill_status' => ['required', Rule::in(SKill::SKILL_STATUS_ARRAY)],
'remarks' => 'max:1000',
'experience_years' => 'numeric|max:99',
]);
if ($validator->fails()) {
return redirect()->route('skill.edit', ['id' => $request->input('id')])
->withErrors($validator)->withInput();
}
2.skills/app/Models/Skill.phpファイルの内容を変更する。(NAME_を削除する)
before
const SKILL_STATUS_ARRAY = [
self::SKILL_STATUS_NAME_NOT_YET,
self::SKILL_STATUS_NAME_LEARNING,
self::SKILL_STATUS_NAME_LEARNED,
self::SKILL_STATUS_NAME_RELEARN,
self::SKILL_STATUS_NAME_MASTER,
];
↓
after
const SKILL_STATUS_ARRAY = [
self::SKILL_STATUS_NOT_YET,
self::SKILL_STATUS_LEARNING,
self::SKILL_STATUS_LEARNED,
self::SKILL_STATUS_RELEARN,
self::SKILL_STATUS_MASTER,
];