Хотя наиболее распространенный подход заключается в использовании 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()
для преобразования объекта коллекции в массив.