Ларавел 5.7. У меня есть модель Eloquent Theme
, с двумя полями, id
и name
.
Другая модель, Filter
, имеет три поля: id
, name
, theme_id
.
Фильтр:
class Filter extends Model
{
public function theme()
{
return $this->belongsTo('App\Theme');
}
}
Я могу прикрепить эти фильтры к произвольному числу других моделей, например, модель Foo
имеет два поля: id
и name
. Я прикрепляю к нему фильтр, используя таблицу Filterables
:
Filterables:
id | filter_id | filterable_id | filterable_type
------------------------------------------------
1 | 1 | 3 | App\Foo
Приведенный выше пример показывает, что Filter
из id
1 присоединено к Foo
из id
3.
Теперь, чтобы получить все фильтры Foo
, у меня есть эта связь в моей Foo
модели:
Foo:
class Foo extends Model
{
public function filters()
{
return $this->morphToMany('App\Filter', 'filterable');
}
}
Это все отлично работает. Но теперь я хочу получить модель Foo
, и только те фильтры, для которых theme_id
(например) 1
.
Как добавить это условие в отношения filters
?