我的项目中有活动,每个活动都有多个日期,例如活动" XYZ"可以在" 1月21日"," 8月20日"和" 12月",它们每年都是递归的。这是我的模特:
class Event extends Model {
public function dates() {
return $this->hasMany('App\EventDate');
}
}
class EventDate extends Model
{
public function event()
{
return $this->belongsTo('App\Event');
}
}
现在我想选择事件,并按事件日期订购它们将来更近。
Event :: with([' dates' => function($ query){
$ query->其中(' start_date','>',Carbon :: now()); $查询 - > ORDERBY('起始日期&#39);
}]);
但它每年都会递归,所以要检查这里的未来事件,以及在start_date上对事件本身进行排序。
答案 0 :(得分:0)
最简单的选择是获取事件日期及其相应的事件:
$eventDates = EventDate::with('event')
->where('start_date', '>', Carbon::now())
->orderBy('start_date')
->all();
现在,您可以通过以下方式遍历事件日期并访问事件数据:
foreach ($eventDates as $eventDate) {
echo $eventDate->event->name;
}