我的项目中有事件,每个事件可以有多个日期,例如事件"XYZ"可以在"1月21日"、"8月20日"answers"12月30日",并且它们是每年递归的。以下是我的型号:
class Event extends Model {
public function dates() {
return $this->hasMany('App'EventDate');
}
}
class EventDate extends Model
{
public function event()
{
return $this->belongsTo('App'Event');
}
}
现在我想选择活动,并按活动日期排序。
事件::带有([dates'=>函数($query){
$query->其中('start_date','>',Carbon::now());$query->orderBy('start_date');
}]);
但它每年都是递归的,所以为了检查未来的事件,这是一个问题,并在其start_date上对事件本身进行排序。
最简单的选择是获取事件日期及其对应的事件:
$eventDates = EventDate::with('event')
->where('start_date', '>', Carbon::now())
->orderBy('start_date')
->all();
现在,您可以通过以下方式迭代事件日期并访问事件数据:
foreach ($eventDates as $eventDate) {
echo $eventDate->event->name;
}