Переопределить данные результатов красноречивых отношений - PullRequest
0 голосов
/ 29 мая 2019

Я использую Laravel-Metable пакет в моем проекте.Этот пакет возвращает объект коллекции, используя в ключе meta имя и значение eloquent объект.

Здесь вы можете увидеть скриншот результата данных пакета.

Как я могупереопределить данные результата и получить данные этого типа массива:

$meta = [
    [
        'id' => 1,
        'key' => "Meta Name",
        'value' => "Meta Value"

    ],

    [
        'id' => 2,
        'key' => "Meta Name",
        'value' => "Meta Value"

    ],
];

Я буду загружать мета-модели своих моделей с отложенной загрузкой:

use Metable;

protected $with = ['meta'];

1 Ответ

1 голос
/ 29 мая 2019

Для этого вы можете использовать метод коллекции map , поэтому он должен выглядеть примерно так:

$result = $metaItems->map(function($meta) {
    return [
        'id' => $meta->id,
        'key' => $meta->key,
        'value' => $meta->value
    ];
})->values();

// then $result->toArray(); should give you the expected result
...