Я не проверял это.Однако должна быть возможность получить все vehicles
, пройдя по всем user
journeys
, создав массив транспортных средств и вернув его как collection
.
. Это можно добавитьк вашему User.php
контроллеру модели:
/**
* Get all vehicles which user has used
*
*/
public function vehicles()
{
$vehicles = [];
$this->journeys()
->each(function ($journey, $key) use (&$vehicles) {
$vehicles[] = $journey->vehicle;
});
return collect($vehicles);
}
Здесь мы создаем пустой массив.Затем мы перебираем все поездки пользователей (передавая массив $vehicles
в качестве ссылки для его обновления).
Мы используем метод сбора each()
для циклического прохождения каждого journey
.Мы создаем новую запись в массиве $vehicles
, добавляя vehicle
.
Наконец, мы возвращаем все vehicles
как коллекцию.
Мы можем использовать это в нашем приложении какИтак:
User::find($id)->vehicles();
Примечание : Вы можете вернуть его как атрибут accessor , изменив имя функции на setVehiclesAttribute()
.Это позволит вам получить доступ к полю транспортного средства, как User::find($id)->vehicle
.