ความแตกต่างระหว่าง @include และ @yield:
| คุณสมบัติ | @include | @yield |
|---|---|---|
| จุดประสงค์ | ใช้เพื่อรวมไฟล์ View ย่อยเข้ามาในไฟล์หลัก. | ใช้เพื่อสร้างช่องที่สามารถแทรกเนื้อหาจากไฟล์ลูก (child view). |
| การใช้ | ใช้สำหรับรวมไฟล์ View ที่มีการกำหนดไว้. | ใช้ใน layout สำหรับสร้างพื้นที่ที่สามารถแทนที่ด้วยเนื้อหาจาก child view. |
| การส่งข้อมูล | สามารถส่งข้อมูลไปยังไฟล์ที่รวมได้ (@include('view', ['data' => $data])). |
ไม่สามารถส่งข้อมูลผ่าน @yield โดยตรง แต่ข้อมูลจะถูกส่งผ่านการใช้ @section. |
| ตัวอย่างการใช้งาน | @include('admin.body.sidebar') |
@yield('content') |
การทำงานร่วมกับ @section และ @extends |
ไม่เกี่ยวข้องกับการขยาย layout หรือ sections. | ใช้ร่วมกับ @extends และ @section เพื่อแทนที่เนื้อหาใน section. |
สรุป:
@include: ใช้เพื่อรวมไฟล์ Blade อื่น ๆ เข้ามาในตำแหน่งที่ต้องการ (เหมาะสำหรับการรวมส่วนต่าง ๆ ที่ใช้ซ้ำ เช่น sidebar, footer, header).@yield: ใช้เพื่อกำหนดพื้นที่สำหรับเนื้อหาที่จะถูกแทนที่ในไฟล์ layout (เหมาะสำหรับการสร้างโครงสร้างหน้าเว็บหลัก เช่น header, footer, และเนื้อหาหลักของแต่ละหน้า).