Eloquent ORM ดูเหมือนจะเป็นวิธีง่ายๆ แต่มีฟังก์ชันกึ่งซ่อนอยู่มากมายและวิธีที่ไม่ค่อยมีใครรู้จักในการใช้ประโยชน์ให้มากขึ้น ฉันจะแสดงเคล็ดลับบางประการในบทความนี้

  1. หลีกเลี่ยงข้อผิดพลาดโดยใช้ตัวช่วยเสริม

เมื่อเข้าถึงค่าอ็อบเจ็กต์ หากอ็อบเจ็กต์นั้นเป็นโมฆะ รหัสของคุณจะทำให้เกิดข้อผิดพลาด ตัวอย่างเช่น:

return $invoice->total;

จะทำให้เกิดข้อผิดพลาดหากวัตถุใบแจ้งหนี้ว่างเปล่า วิธีง่ายๆ ในการหลีกเลี่ยงข้อผิดพลาดคือการใช้ตัวเลือกเสริม Laravel helper:

return optional($invoice)->total;

ตอนนี้ หากวัตถุ $invoice เป็นโมฆะ รหัสของคุณจะคืนค่าเป็นโมฆะแทนที่จะทำให้เกิดข้อผิดพลาด คุณอาจใช้การปิดด้วยตัวช่วยเสริมก็ได้ ได้รับการปิดเนื่องจากเป็นอาร์กิวเมนต์ที่สอง และจะถูกเรียกหากอาร์กิวเมนต์แรกไม่เป็นโมฆะ

<แข็งแกร่ง>2. อัปเดตหรือสร้าง

เมื่อทำงานกับฐานข้อมูล เป็นธรรมเนียมที่จะต้องดูว่ามีบันทึกที่กำหนดอยู่แล้วและอัปเดต หรือสร้างบันทึกใหม่หากไม่มี บางสิ่งบางอย่างตามบรรทัดเหล่านี้:

คุณสามารถใช้เมธอด updateOrCreate ของ Eloquent แทนได้

<แข็งแกร่ง>3. วนลูปตัวแปรใน foreach

ภายใน foreach loop ตรวจสอบว่ารายการปัจจุบันเป็นรายการแรก/รายการสุดท้ายโดยใช้ตัวแปร $loop

นอกจากนี้ยังมีคุณสมบัติอื่นๆ เช่น

เพิ่มเติมที่นี่: https://laravel.com/docs/master/blade#the-loop-variable

<แข็งแกร่ง>4. กลุ่มเส้นทาง

กลุ่มเส้นทางภายในการจัดกลุ่ม เส้นทาง คุณสามารถสร้างกลุ่มภายในกลุ่มโดยกำหนดมิดเดิลแวร์บางตัวให้กับบาง URL ใน "พาเรนต์" เท่านั้น

<แข็งแกร่ง>5. ฝีปากโดยที่วิธีการวันที่

ใน Eloquent ให้คุณตรวจสอบวันที่ด้วยฟังก์ชัน WhereDay() , WhereMonth() , WhereYear() ,
WhereDate() และ WhereTime()

<แข็งแกร่ง>6. การทดสอบอีเมลใน laravel.log

หากคุณต้องการทดสอบเนื้อหาอีเมลในแอปของคุณ แต่ไม่สามารถหรือไม่ต้องการตั้งค่าบางอย่างเช่น Mailtrap ให้ใช้พารามิเตอร์ .env MAIL_DRIVER=log และอีเมลทั้งหมดจะถูกบันทึกลงในไฟล์ storage/logs/laravel.log แทนที่จะถูกส่งจริงๆ

<แข็งแกร่ง>7. คอลัมน์เฉพาะ Model on method ::all()

เมื่อเรียก Eloquent's Model::all() คุณสามารถระบุคอลัมน์ที่จะส่งคืนได้

$users = User::all([‘id’, ‘name’, ‘email’]);

<แข็งแกร่ง>8. ชื่อคอลัมน์นามแฝงในรูปแบบ elequent

ใน Eloquent Query Builder คุณสามารถระบุ “as” เพื่อส่งคืนคอลัมน์ใดๆ ที่มีชื่ออื่นได้
เช่นเดียวกับในการสืบค้น SQL ธรรมดา

<แข็งแกร่ง>9. ใช้ hasMany เพื่อสร้างลูก Many

หากคุณมีความสัมพันธ์ hasMany() คุณสามารถใช้ saveMany() เพื่อบันทึกรายการ “child” หลายรายการจากออบเจ็กต์ “parent” ของคุณได้ ทั้งหมดในประโยคเดียว

10. วิธีการ dd (ถ่ายโอนข้อมูลและตาย)

หนึ่งในวิธีที่พบบ่อยที่สุดในการแก้ไขข้อผิดพลาดในระบบนิเวศของ Laravel คือการถ่ายโอนข้อมูลตัวแปรบนหน้าจอ และค้นหาว่าเกิดอะไรขึ้นกับตัวแปรนั้น

ฟังก์ชัน dd จะทิ้งตัวแปรที่กำหนดและสิ้นสุดการทำงานของสคริปต์ แทนที่จะทำ dd($result); คุณสามารถใส่ -›dd() เป็นวิธีการต่อท้ายประโยค Eloquent หรือ Collection ใดๆ ได้โดยตรง

ขอขอบคุณที่อ่านบทความนี้! อย่าลืมปรบมือ 👏 หรือแสดงความคิดเห็น 💬