Mặc dù cách tiếp cận phổ biến nhất là sử dụng Model::select
, nó có thể gây ra việc hiển thị tất cả các thuộc tính được xác định bằng các phương thức truy cập trong các lớp mô hình. Vì vậy, nếu bạn xác định thuộc tính trong mô hình của bạn:
<?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);
}
}
Và sau đó sử dụng:
TableName::select('username')->where('id', 1)->get();
Nó sẽ xuất bộ sưu tập với cả hai first_name
và username
, thay vì chỉ tên người dùng.
Sử dụng tốt hơn pluck()
, độc tấu hoặc tùy chọn kết hợp với select
- nếu bạn muốn các cột cụ thể.
TableName::select('username')->where('id', 1)->pluck('username');
hoặc là
TableName::where('id', 1)->pluck('username');
// sẽ trả về bộ sưu tập chỉ bao gồm các username
giá trị
Ngoài ra, tùy chọn, sử dụng ->toArray()
để chuyển đổi đối tượng bộ sưu tập thành mảng.