Как установить пользовательский атрибут, используя eloquent, используя связанную модель - PullRequest
0 голосов
/ 23 января 2019

Привет, у меня такой красноречивый запрос:

$partners = DeliveryPartner::where('active', 1)
    ->where('blocked', 0)
    ->whereHas('deliveryPartnerZipcodes', function ($query) use ($zip4pp) {
        $query->where('zipcode', $zip4pp);
    })
    ->with('deliveryPartnerImage')
    ->with(['deliveryPartnerTimes' => function($query) {
        //HERE I WANT TO SET A PROPERTY ON THE BASE COLLECTION USING INFO FROM THIS MODEL
    }])
    ->get();

В сроки поставки есть время открытия и закрытия. Используя это время, я хочу установить свойство " status " для родителя, например, $ parent-> status = некоторое значение, основанное на данных из времени партнера по доставке.

Как я могу это сделать?

1 Ответ

0 голосов
/ 23 января 2019

В вашей модели добавьте функцию получения атрибута:

public function getStatusAttribute() {
    return $this->delivery->opening . ' - ' . $this->delivery->closing;
}

Обратите внимание, что я использую отношение с Delivery для вычисления этого атрибута.Таким образом, вам не нужно ничего делать в запросе Eloquent и вы можете использовать ->status в вашей коллекции результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...