Я использую пакет 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'];
Для этого вы можете использовать метод коллекции карта, поэтому он должен быть примерно таким:
$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
Я использовал скриншот, который вы предоставили в качестве результата
$metaItems
, и применил к нему код. Но вы можете добавить это в модель.