ในขั้นตอนของการตรวจสอบข้อมูล จะเกิดขึ้นที่ Controller นะครับ อาจจะอยู่ในตัว Controller โดยตรงหรืออยู่ในส่วนของ Request (ขั้นสูง) ก็ได้ก็คือถ้าเราเรียกใช้ ตามรูปด้านล่างนี้
/**
* Store a new blog post.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$validated=$request->validate([
'title'=>'required|unique:posts|max:255',
'body'=>'required',
]);
// The blog post is valid...save
Post::create($validated);
return redirect('/'
);
}
ถ้าผ่านการตรวจสอบตัว Controller ก็จะทำงานต่อในบรรทัดต่อไป แต่ถ้าไม่ผ่านมันจะมีกระบวนการต่อเนื่องที่เกิดขึ้นอัตโนมัติ ปกติคือ Validation Exception แล้วจะส่งข้อมูลแจ้งกลับความผิดพลาดให้ต้นทางทำการแก้ไขเพื่อส่งข้อมูลใหม่ (ในกรณี API) สำหรับเว็บจะ Redirect กลับพร้อมข้อความแสดงความผิดพลาดแสดงให้ผู้ใช้ทราบ เพราะฉะนั้นลอจิกตรงนี้สำคัญ ควรเขียนไปตามขั้นตอนนีั้และเลือกใช้วิธีการตรวจสอบข้อมูลที่เหมาะสม ถ้าคุณรู้ว่าทีมงาน Laravel เตรียมอะไรไว้ให้บ้างแล้วคุณจะร้อง ว้าว ครับ ในโค้ดด้านบนตัวแปร $validated จะเป็น array ที่เหลือเฉพาะข้อมูลที่ถูกกรองแล้ว และเราสามารถส่งให้ให้ฟังก์ชัน create() เพื่อส่งค่าและบันทึกลงฐานข้อมูลเลยทันทีครับ
สำหรับการเรียกใช้งานฟังก์ชันในการตรวจสอบข้อมูล แบบด้านบนคือส่งข้อมูลเป็นสตริง (string) โดยคั่นแต่ละตัวด้วย | แต่เราสามารถส่งข้อมูลเป็น array ก็ได้ ลองดูครับ
/**
* Store a new blog post.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$validated=$request->validate([
'title'=>['required','unique:posts','
max:255'],
'body'=>['required'],
]);
// The blog post is valid...save
Post::create($validated);
return redirect('/'
);
}