🔹 เกริ่นนำ
การแสดงข้อความแจ้งเตือนเมื่อข้อมูลที่ผู้ใช้กรอกไม่ผ่านการตรวจสอบ (Validation) ถือเป็นประสบการณ์ผู้ใช้ที่สำคัญ Laravel มีข้อความแจ้งเตือนที่ตั้งมาให้ล่วงหน้าในภาษาอังกฤษ แต่เราสามารถปรับแต่งข้อความให้เหมาะกับแอปของเรา หรือแสดงข้อความเป็นภาษาไทยได้ง่าย ๆ
บทนี้จะสอนวิธีการกำหนดข้อความ Validation เองทั้งใน Controller และใน Form Request พร้อมตัวอย่างการใช้งานจริงที่สามารถนำไปใช้ได้ทันที
🔸 การใช้ Custom Messages ใน Controller
public function register(Request $request)
{
$messages = [
'name.required' => 'กรุณากรอกชื่อของคุณ',
'email.required' => 'กรุณากรอกอีเมล',
'email.email' => 'รูปแบบอีเมลไม่ถูกต้อง',
'password.required' => 'กรุณากรอกรหัสผ่าน',
'password.confirmed' => 'รหัสผ่านไม่ตรงกัน'
];
$validated = $request->validate([
'name' => 'required',
'email' => 'required|email',
'password' => 'required|confirmed'
], $messages);
}
🔸 การใช้กับ Form Request
หากคุณใช้ Form Request Class สามารถกำหนดข้อความได้ในเมธอด messages()
public function messages()
{
return [
'name.required' => 'กรุณากรอกชื่อของคุณ',
'email.required' => 'ต้องระบุอีเมลด้วย',
];
}
💡 คำสั่งนี้จะ override ข้อความเดิมของ Laravel โดยอัตโนมัติ