Laravel合并关系

时间:2019-08-08 05:29:08

标签: laravel eloquent laravel-5.8

我有2个表bookingseventDates

bookings表具有2个字段checkIndatecheckOutDate,它们指向eventDates表。

我建立了以下关系

public function eventCheckInDate() {
    return $this->belongsTo( 'EventDate', 'checkInDate' );
}
public function eventCheckOutDate() {
    return $this->belongsTo( 'EventDate', 'checkOutDate' );
}

我该如何结合这些关系,以便雄辩地只运行单个查询并获取数据?

现在发生的是,即使checkInDatecheckOutDate仍然相同,它也会运行2个查询。

谢谢

1 个答案:

答案 0 :(得分:0)

据我了解,您需要类似的东西。创建另一个合并两个关系的方法。

public function getEventsInOutDateAttribute($value)
{
    $eventCheckInDate = $this->eventCheckInDate;
    $eventCheckOutDate = $this->eventCheckOutDate;

    // Merge collections and return single collection.
    return $eventCheckInDate->merge($eventCheckOutDate);
}