
ในการทำเว็บไซต์หรือระบบเว็บแอพลิเคชั่น ผู้ใช้มีการ Request (ร้องขอ) ข้อมูลไปยัง Server (Laravel) ดังนั้นแล้ว ตัว Server (Laravel) ก็จะต้องมีการ Response (ตอบกลับ) ผลลัพท์ไปหาผู้ใช้งาน ดังนั้นบทความนี้จะอธิบายรายละเอียดและวิธีการในการเขียนโปรแกรมการตอบกลับใน Laravel กันครับ
เริ่มต้น
Laravel มีหลายวิธีการในการ Response โดยเราจะไปเขียน Response ที่ Controller เดี่ยวลองดูการทำ Response แบบง่ายๆก่อนด้วยการส่งข้อความ “Hello world”
ตัวอย่าง
ให้เราไปสร้าง Controller ในตัวอย่าง ชื่อ BaseController.php แล้วเขียนคำสั่ง code ลงไป
1 2 3 4 |
public function demo() { return 'Hellow world'; } |
หากเราต้องการ response เป็นค่า Array สามารถทำได้ดังนี้
1 2 3 4 |
public function demo() { return ['apple', 'mango', 'lemon']; } |
การแนบข้อมูล Header Response
เราสามารถแนบข้อมูลไปไว้ใน Header แล้ว response กลับไปยังผู้ใช้ได้โดยวิธีการมีดังนี้
1 2 3 4 5 6 |
public function demo() { return response('Hello world', 200) ->header('Content-Type', 'text/plain') ->header('X-Header-One', 'Header Value 1'); } |
ผลลัพท์ก็ได้ พร้อมกับ Header
JSON Response
การ Response แบบ JSON เป็นที่นิยมอย่างมากเนื่องจากว่า มาตราฐาน API นิยมใช้ syntax JSON โดยเราจะใช้ method json() จากนั้นข้อมูลที่เราต้องการจะส่งจะถูกแปลงให้อยู่ในรูปแบบ JSON เองอัตโนมัติ ลองมาดูตัวอย่างกันครับ
1 2 3 4 5 6 7 8 |
public function demo() { return response()->json([ 'name' => 'Tawatsak', 'sex' => 'Male', 'country' => 'Thailand' ]); } |
ผลลัพท์ที่ได้
โดย method json() นี้จะแปลง Header Content-Tyype=application/json ให้เราอัตโนมัติ เราไม่ต้องไปทำอะไร
View Redirect
หากเราต้องการ Redirect ก็สามารถทำได้โดยใช้คำสั่งนี้
1 2 3 4 |
public function demo() { return redirect('home/dashboard'); } |
โดยเส้นทางที่จะไปคือ domain.com/home/dashboard
หากต้องการ Redirect ไปลิงค์ด้านนอกก็ทำได้โดยใช้คำสั่งนี้
1 2 3 4 |
public function demo() { return redirect()->away('https://www.itoffside.com'); } |
สำหรับบทความนี้ก็จบเพียงเท่านี้ หากใครมีข้อสงสัยต้องการสอบถามเพิ่มเติม สามารถแสดงความคิดเห็น(Comment) ไว้ด้านล่างนี้เลยนะครับ