У меня есть запрос для подсчета количества регистраций в конференции:
$registrationsCount = $conference->registrations->count();
Но я хочу получить только регистрации на конференциях, связанных с типами регистрации, цена которых> 0. Знаете ли вы, как этого добиться? Например, если конференция «тестовая конференция» имеет два типа регистрации «rt1 и rt2», цена rt1 равна 0, а цена rt2 равна 10 и в типе регистрации «rt2» есть 5 регистраций, запрос должен вернуть 5 потому что в конференции 5 платных регистраций.
Модель конференции:
public function registrationTypes(){
return $this->hasMany('App\RegistrationType', 'conference_id');
}
public function registrations(){
return $this->hasMany('App\Registration', 'conference_id');
}
Модель регистрации:
public function registration_types(){
return $this->belongsToMany('App\RegistrationType', 'registration_registration_types');
}
public function conference(){
return $this->belongsTo('App\Conference');
}
Тип регистрации модель:
public function conference(){
return $this->belongsTo('App\Conference');
}
public function registrations(){
return $this->belongsToMany('App\Registration', 'registration_registration_types');
}
Модель участников:
public function registration(){
return $this->belongsTo('App\Registration');
}
public function registration_type(){
return $this->belongsTo('App\RegistrationType');
}
структура таблиц:
conferences: id, name
registrations: id, status, conference_id, user_that_did_registration
registration_types: id, name, price, conference_id
participants: id, registration_id, registration_type_id, name