Причина, по которой он не работает, заключается в том, что вы пытаетесь переписать отношение модели, которое вы не можете сделать простым присваиванием.
Вы можете достичь того, что хотите, с помощью метода setRelation
:
Model::with('animal')
->get()
->each(function ($item) {
if (true) {
$item->setRelation('animal', 'Yop override');
}
})
->toArray();
Если вы хотите использовать метод map
, это будет то же самое, но вам придется добавить возврат в конце функции.
Model::with('animal')
->get()
->map(function ($item) {
if (true) {
$item->setRelation('animal', 'Yop override');
}
return $item;
})
->toArray();