25 April, 2019
Задаем формат возвращаемой коллекции модели Eloquent

В модели добавляем метод 

use October\Rain\Database\Collection;

public function newCollection(array $models = [])
{
    $collection = Collection($models);

// modify your collection

return $collection;
}

Этот метод вызывается во всех случаях когда происходит получении коллекции из модели. Например, в $collection будет то же самое, что получается через Model::get().


Далее, проводим манипуляции с объектом коллекции: 

$collection->each(fucntion($model) {
$model->relation // здесь творим со связью что хотим
});

Например, оставляем объекту связи только нужные поля:

$whiteList = ['filed a', 'field b'];

$collection = $collection->map(function ($item) use ($whiteList) {
$properties = get_object_vars($item);

foreach ($properties as $property) {
if(!in_array($property, $whiteList) {
unset($item->{property});
}
}

return $item;
});

Готово

view_count: 29