Laravel Collections get() Method – วิธีดึงค่าจาก Collection ตาม Key

Laravel Collections get() Method – วิธีดึงค่าจาก Collection ตาม Key

Introduction

Laravel Collections เป็นหนึ่งในฟีเจอร์ที่ทำให้ชีวิต developer ง่ายขึ้นมากตอนทำงานกับ arrays ซับซ้อน แทนที่จะเขียน loop เยอะๆ เราสามารถใช้ method สำเร็จรูปได้เลย

วันนี้มาดู method ที่ใช้บ่อยมากอีกตัวนึง นั่นคือ get() กัน

Basic Syntax

$collection->get($key, $default = null);
  • $key – key ที่ต้องการดึงค่า (string หรือ integer)
  • $default – ค่าเริ่มต้นถ้า key ไม่มีอยู่ (optional)

Basic Usage

ดึงค่าจาก key ที่มีอยู่

$collection = collect([
    'name' => 'Itthipat',
    'age' => 28,
    'city' => 'Bangkok'
]);

$name = $collection->get('name');
// Output: Itthipat

ดึงค่าจาก key ที่ไม่มี

$country = $collection->get('country');
// Output: null

Using Default Value

String Default

$country = $collection->get('country', 'Thailand');
// Output: Thailand

ถ้า key ‘country’ ไม่มี จะได้ค่า ‘Thailand’ แทน

Number Default

$age = $collection->get('age', 0);
// Output: 28 (because key exists)

Array Default

$tags = $collection->get('tags', []);
// Output: []

Callback Default (Laravel 8+)

$value = $collection->get('missing', function() {
    return 'Computed default';
});
// Output: Computed default

Callback จะถูกเรียกก็ต่อเมื่อ key ไม่มีจริงๆ เหมาะสำหรับกรณีที่ต้องคำนวณค่าเริ่มต้น

getOrFail() Method

ถ้าต้องการให้โปรแกรม throw exception เมื่อ key ไม่มี ใช้ getOrFail():

$email = $collection->getOrFail('email');
// Throws \Illuminate\Support\ItemNotFoundException

เหมาะสำหรับกรณีที่ key นั้นจำเป็นต้องมี เช่น validation

Practical Examples

User from Request

$request = request();
$userId = collect($request->all())->get('user_id', auth()->id());

Config/Settings

$settings = collect(config('settings'));
$timezone = $settings->get('timezone', 'Asia/Bangkok');

Nested Arrays

$data = collect([
    'user' => [
        'profile' => [
            'avatar' => 'avatar.png'
        ]
    ]
]);

$avatar = $data->get('user.profile.avatar');
// Output: avatar.png

Related Methods

  • first() – ดึง item แรก
  • firstWhere() – ดึง item แรกที่ตรงเงื่อนไข
  • pluck() – ดึงค่าจาก key ที่ระบุในทุก item
  • only() – ดึงเฉพาะ key ที่ระบุ

Summary

get() method เป็นเครื่องมือที่ใช้บ่อยมากในการดึงค่าจาก Collection โดยสามารถกำหนด default value ได้หลายรูปแบบ รวมถึง callback function สำหรับกรณีที่ต้องคำนวณค่า ถ้าต้องการให้ throw exception เมื่อ key ไม่มี ใช้ getOrFail() แทน

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

ITTHIPAT

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

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

Scroll to Top