แม้ว่าวิธีการทั่วไปส่วนใหญ่จะใช้Model::select
แต่ก็สามารถทำให้เกิดการแสดงผลแอตทริบิวต์ทั้งหมดที่กำหนดด้วยวิธีการเข้าถึงภายในคลาสโมเดล ดังนั้นหากคุณกำหนดแอตทริบิวต์ในโมเดลของคุณ:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* Get the user's first name.
*
* @param string $value
* @return string
*/
public function getFirstNameAttribute($value)
{
return ucfirst($value);
}
}
จากนั้นใช้:
TableName::select('username')->where('id', 1)->get();
มันจะส่งออกคอลเลกชันที่มีทั้งfirst_name
และusername
แทนที่จะเป็นชื่อผู้ใช้เท่านั้น
ใช้งานpluck()
เดี่ยวได้ดีกว่าหรือใช้ร่วมกับselect
- หากคุณต้องการคอลัมน์เฉพาะ
TableName::select('username')->where('id', 1)->pluck('username');
หรือ
TableName::where('id', 1)->pluck('username');
// ซึ่งจะส่งคืนคอลเล็กชันที่ประกอบด้วยusername
ค่าเท่านั้น
นอกจากนี้คุณสามารถเลือกใช้->toArray()
เพื่อแปลงวัตถุคอลเลกชันเป็นอาร์เรย์