Laravel доступ к значениям из объекта в объект


Laravel доступ к значениям из объекта в объект

15.03.2020 10:21:20 Просмотров 39 Источник

В одной из функций контроллера

$readings = Reading::orderBy('reading_date_time', 'DESC')->get();
dd($readings);

Это дает

Illuminate\Database\Eloquent\Collection {#1883
  #items: array:160 [
    0 => App\Reading {#1722
      #fillable: array:6 [ …6]
      #connection: "mysql"
      #table: "readings"
      #primaryKey: "id"
      #keyType: "int"
      +incrementing: true
      #with: []
      #withCount: []
      #perPage: 15
      +exists: true
      +wasRecentlyCreated: false
      #attributes: array:8 [ …8]
      #original: array:8 [ …8]
      #changes: []
      #casts: []
      #dates: []
      #dateFormat: null
      #appends: []
      #dispatchesEvents: []
      #observables: []
      #relations: []
      #touches: []
      +timestamps: true
      #hidden: []
      #visible: []
      #guarded: array:1 [ …1]
    }...

Как я могу получить доступ к фактическим значениям таблицы чтений. И используйте их для таких операций, как array_column().

У вопроса есть решение - Посмотреть?

Ответы - Laravel доступ к значениям из объекта в объект / Laravel access values from object in object

Является ответом!
TsaiKoga

15.03.2020 10:30:23

Эта функция уже дает вам результат, и результатом является сбор данных .

Вы можете вызвать атрибут по одному объекту в коллекции:

$readings->first()->reading_date_time;

и вы можете использовать метод-pluck, чтобы получить значения атрибутов из коллекции, это так же, как array_column:

$readings->pluck('reading_date_time');

Если вы используете array_column, вы можете использовать метод-toArray для изменения коллекции в массив:

array_column($readings->toArray(), 'reading_date_time')
Foued MOUSSI

15.03.2020 10:30:35

Вы можете использовать помощник toArray()

Метод toArray преобразует коллекцию в простой PHP-массив. Если ценности коллекции-это красноречивые модели, модели также будут преобразованы в массивы

$readings = Reading::orderBy('reading_date_time', 'DESC')->get()->toArray();

/*
    [
        ['column1' => 'value1', 'column2' => 'value2', ...],
        ['column1' => 'value1', 'column2' => 'value2', ...],
        ['column1' => 'value1', 'column2' => 'value2', ...],
        ...
    ]
*/

Тогда вы можете использовать array_column() на массиве $readings

$pluckedValues = array_column($readings, 'chosen_column');

print_r($pluckedValues);
Помочь в развитии проекта:
Закрыть X