รู้จักกับ Laravel Collection methods: first, firstOrFail, และ firstWhere
Laravel เป็น Framework ที่โด่งดังคงไม่มีใครไม่รู้จัก โดยมีเครื่องมือหลากหลายที่สร้างมาเพื่อช่วยพัฒนาเว็บไซต์ได้ง่ายขึ้น และ “Collections” เป็นหนึ่งในเครื่องมือที่นักพัฒนาส่วนใหญ่ต้องใช้ ในบทความนี้ เราจะมาทำความเข้าใจวิธีการใช้งาน methods เช่น `first` , `firstOrFail` และ `firstWhere` กันดีกว่า
วิธีใช้งาน method: first
เริ่มต้นที่ `first` method กันก่อน ชื่อก็ตรงตัวเลย คือ ใช้เพื่อดึง item ตัวแรกของ Collection นั้นออกมา
$collection = collect([1, 2, 3, 4, 5]);
$first = $collection->first();
echo $first; // ผลลัพธ์: 1
ข้อดีของ `first` ก็คือถ้าหาไม่เจอ มันจะคืนค่า `null` กลับมา ซึ่งสามารถตั้งค่า default ให้คืนค่าอื่นได้เช่นกัน
$first = $collection->first(function ($value, $key) {
return $value > 5; // เงื่อนไขที่ไม่มีใน array
}, 'default');
echo $first; // ผลลัพธ์: default
วิธีใช้งาน method: firstOrFail
`firstOrFail` จะคล้ายกับ first แต่กรณีที่ไม่มีข้อมูลจะ throw error ออกมา ซึ่งจะได้ผลลัพธ์ในรูปแบบ Model
$user = User::where('active', 1)->get()->firstOrFail();
echo $user->name; // หากไม่พบ user ที่ต้องการจะ throw NotFoundHttpException
เรียกได้ว่าจอร์จสุด ๆ เพราะช่วยสร้างความปลอดภัยให้กับโปรแกรมเรา หากผลลัพธ์ไม่เป็นไปตามที่คาดหวัง
วิธีใช้งาน method: firstWhere
ในความเป็นจริงบางครั้งเราอาจต้องการได้ item ที่ตรงตามเงื่อนไขที่เรากำหนดไว้และ `firstWhere` คือคำตอบ! ที่ช่วยให้คุณหาข้อมูลตัวแรกที่ตรงกับเงื่อนไขที่ต้องการ
$collection = collect([
['name' => 'John', 'age' => 30],
['name' => 'Jane', 'age' => 25],
['name' => 'Doe', 'age' => 40],
]);
$person = $collection->firstWhere('age', 25);
echo $person['name']; // ผลลัพธ์: Jane
โดย `firstWhere` จะคืนค่า `null` หากไม่มี item ไหนที่ตรงเงื่อนไข
สรุป
หวังว่าบทความนี้จะทำให้คุณเข้าใจการใช้ Collections ใน Laravel มากขึ้นนะครับ! การใช้ methods อย่าง `first`, `firstOrFail`, และ `firstWhere` สามารถช่วยให้โค้ดของคุณมีประสิทธิภาพและอ่านง่ายขึ้นอีกด้วย ลองเอาไปใช้ในโปรเจกต์ของคุณดูนะครับ! ขอให้สนุกกับการเขียนโค้ดครับ!