如何使用相关模型雄辩地设置自定义属性

时间:2019-01-23 11:36:42

标签: php laravel-5 eloquent

嗨,我有一个雄辩的查询,像这样:

$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();

在交货时间内,有开闭时间。使用这些时间,我想在父级上设置一个名为“ 状态”的属性,例如$ parent-> status =基于交付伙伴时间数据的一些值。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

在模型中添加get属性函数:

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

请注意,我正在使用与Delivery的关系来计算此属性。 这样,您无需在Eloquent查询中执行任何操作,就可以在结果集中使用->status