การใช้งาน Laravel Collection first, firstOrFail, firstWhere method

รู้จักกับ 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` สามารถช่วยให้โค้ดของคุณมีประสิทธิภาพและอ่านง่ายขึ้นอีกด้วย ลองเอาไปใช้ในโปรเจกต์ของคุณดูนะครับ! ขอให้สนุกกับการเขียนโค้ดครับ!

เกี่ยวกับผู้เขียน

ITTHIPAT

สวัสดีครับผม อิทธิพัทธ์ (เป้) ชอบหาเทคนิคต่างๆที่ทำให้ชีวิต Programmer ง่ายขึ้น ทั้ง Automate, Library ชอบทำ Blog และ Video ถ้ามีเวลานะ!

ขอบคุณทุกคนที่ติดตาม และอ่านบทความของผมครับ ผมหวังว่าความรู้ที่เขียนขึ้นในเว็บไซต์นี้จะช่วยทุกท่านได้ไม่มากก็น้อย 

Scroll to Top