Menu

Saturday, May 26, 2018

[Laravel - Config] การบังคับให้ Laravel สร้าง URL แบบ HTTPS
[Laravel - Config] How to Force Laravel to Create URL with HTTPS

เมื่อ Laravel ถูกดีพลอยบน server ที่มีการเรียกหน้าเว็บแบบ HTTP เบื้องหลัง NGINX ที่ตั้งค่าให้เรียกหน้าเว็บแบบ HTTPS เราจึงจำเป็นต้องบังคับให้ link ที่สร้างขึ้นมาโดย Laravel เป็น HTTPS ทั้งหมด

Method ที่เกี่ยวข้องกับการสร้าง link ของ Laravel มี 2 methods ดังนี้
  • url() 
    • เป็น method สำหรับสร้าง url จาก relative path ที่ใส่เข้าไป เช่น url('/images/logo_sm.png') เป็นต้น
    • url ที่ถูกสร้างขึ้นจะเป็น HTTP หรือ HTTPS ตาม server ที่มันอยู่
    • วิธีแก้ไข คือ เพิ่ม \URL::forceScheme('https'); ใน boot ของ AppServiceProvider 
  • link() 
    • เป็น method สำหรับสร้าง render template เพื่อแสดงรายการของหน้า 
    • Method นี้เป็นของตัวแปรที่ได้มาจากการเรียกใช้ paginate() ตอน query ข้อมูลจากฐานข้อมูล
    • วิธีแก้ไข คือ ให้ทำการสั่ง setPath() ให้กับตัวแปรดังกล่าวก่อนที่จะเรียกใช้ link() เช่น $users->setPath('/users/manage'); แล้วจึงเรียกใช้ {{$users->link()}} ใน blade template เมื่อ $users เป็นตัวแปรที่ได้มาจากการเรียกใช้ paginate()

No comments:

Post a Comment