У меня есть следующие настройки:Фильтрующие рвутся загруженным данные в Laravel 4
клубы предлагают развлечения, которые имеют определенного типа, поэтому 3 модели с отношениями:
клуб:
function activities()
{
return $this->hasMany('Activity');
}
активность:
function club()
{
return $this->belongsTo('Club');
}
function activityType()
{
return $this->hasMany('ActivityType');
}
ActivityType:
function activities()
{
return $this->belongsToMany('Activity');
}
Так, например, в клубе Foo может быть одно мероприятие под названием «Триатлон», и эта активность имеет активность «Плавание», «Бег» и «Велоспорт».
Это все достаточно справедливо, но мне нужно показать список ActivityTypes на странице Клуба - в основном просто список. Поэтому мне нужно получить ActivityTypes всех связанных действий.
я могу сделать это как так из метода контроллера, который получает экземпляр модели клуба:
$data = $this->club->with(array('activities', 'activities.activityTypes'))->find($club->id)
Это заставляет меня объект со всей относящейся к деятельности наряду с ActivityTypes, связанной с ними. Также справедливо. Но мне нужно применить еще одну фильтрацию. Активность может быть не в правильном состоянии (она может быть в БД как черновик или истек), поэтому мне нужно иметь возможность получать только ActivityTypes из Деяний, которые являются живыми и в будущем.
На данный момент я потерян ... у кого-нибудь есть предложения по обработке этого прецедента?
Благодаря
Спасибо - я пошел с другим ответом, поскольку предложенный вами подход означал бы, что я мог бы только когда-либо извлекать активные действия с помощью метода activity(). Используя фильтр, я также могу получить те, у кого есть статус «ожидающий» или что-то еще. –