laravel — php сокращение для добавления к объекту

Я перетаскиваю данные из своей базы данных и хочу добавить объект в конец каждого элемента. Следующий код работает, но я предполагаю, что есть лучший способ, чем повторять всю информацию и добавлять новый объект.

    $cs = $client->contact()->get();

foreach ($cs as $c) {

$contact = (object)[
'id' => $c->id,
'name' => $c->name,
'role' => $c->role,
'phone' => $c->phone,
'address' => $c->address,
'postcode' => $c->postcode,
'otherClients' => Contact::find($c->id)->clients()->get(), //this is the additional info
];

$contacts[]=$contact;

1

Решение

Вы можете просто изменить исходные объекты, если вам не нужно выходить $cs неповрежденными.

foreach ($cs as $c) {
$c->otherClients = Contact::find($c->id)->clients()->get();
}
3

Другие решения

ты можешь использовать

По предложению @MrCode

$cs = $client->contact()->get();

PHP 5.4+

foreach ($cs as $c) {

$c->otherClients = Contact::find($c->id)->clients()->get(), //this is the additional info
}

PHP 4 или ниже

foreach ($cs as &$c) {

$c->otherClients = Contact::find($c->id)->clients()->get(), //this is the additional info
}
1

По вопросам рекламы [email protected]