Level 60
foreach($persons as $person) {
$person->label = $person->spoken_languages->pluck('name')->join(', ');
}
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Hello,
I have json-return:
{
"id": 3,
"forename": "Ellen",
"name": "De Vos",
"label": "Ellen De Vos",
"value": 3,
"spoken_languages": [
{"id": 168,
"name": "Dutch",
"code": "nl",
"local_name": "Nederlands",
"dutch_name": "Nederlands",
"order": 100,
},
{"id": 60,
"name": "English",
"code": "en",
"local_name": "English",
"dutch_name": "Engels",
"order": 98,
"updated_at": null,
"created_at": null,
"pivot": {
"person_id": 3,
"language_id": 60}
}]},
PersonController.php:
$persons = $persons
->with([
'personAddresses',
'spokenLanguages',
'createdByUser',
])
->get(['id', 'forename', 'name']);
foreach ($persons as $k => $v) {
/*foreach ($v->spokenLanguages as $spokenLanguage) {
$v['lng'] = $spokenLanguage['name'];
}*/
$v['label'] = $v['forename'] . ' ' . $v['name'];
$v['value'] = $v['id'];
}
return Response::json($persons, 200);
How to put comma-separated languages into key $v['label'] ?
I would like to get in $v['label'] something like this: Ellen De Vos (Dutch, English)
If I try:
foreach ($v->spokenLanguages as $spokenLanguage) {
$v['label'] = $spokenLanguage['name'];
}
I get only first language.
Where am i wrong?
Tnx
foreach($persons as $person) {
$person->label = $person->spoken_languages->pluck('name')->join(', ');
}
Please or to participate in this conversation.