- Например, есть такая коллекция
$phone_Id = $request->get('q');
$colors = Phone::find($phone_Id)->color->toArray();
dd($colors);
результат печати
array:2 [▼
0 => array:6 [▼
"id" => 8
"name" => "red"
"value" => "#fb6250"
"created_at" => "2019-05-29 01:42:51"
"updated_at" => "2019-05-29 01:42:51"
"pivot" => array:4 [▼
"phone_id" => 1
"color_id" => 8
"created_at" => "2019-05-29 01:42:51"
"updated_at" => "2019-05-29 01:42:51"
]
]
1 => array:6 [▼
"id" => 11
"name" => "blue"
"value" => "#202020"
"created_at" => "2019-05-29 01:42:51"
"updated_at" => "2019-05-29 01:42:51"
"pivot" => array:4 [▼
"phone_id" => 1
"color_id" => 11
"created_at" => "2019-05-29 01:42:51"
"updated_at" => "2019-05-29 01:42:51"
]
]
]
Конечным результатом, который я хочу, является массив, подобный этому
array:2 [▼
0 => array:2 [▼
"id" => 8
"text" => "red"
]
1 => array:2 [▼
"id" => 11
"text" => "blue"
]
]
Итак, моя нынешняя практика такая:
$data = [];
foreach ($colors as $key => $val) {
$data[$key]['id'] = $val->id;
$data[$key]['text'] = $val->name;
}
dd($data);
результат печати
array:2 [▼
0 => array:2 [▼
"id" => 8
"text" => "red"
]
1 => array:2 [▼
"id" => 11
"text" => "blue"
]
]
Я хочу знать, есть ли лучшая и более красивая реализация для такого рода требований в laravel?