Как оставить только те категории(и его родителя) в которых есть записи?
Есть категории и подкатегории. Сделал использую SimpleTree. Подкатегории могут иметь записи.(Записи отдельная модель)
Как оставить только те подкатегории и их родителей(категорий), которые имеют определенные записи?
Так всё правильно работают, но только подкатегории:
$query-> where( function ($query) use($type_radio) {
$query->whereHas('record', function ($query) use($type_radio) {
$query->where('type', $type_radio);
});
})->get();
Пробовал добавить orWhere и там перебирать с помощью метода map, но она почему то не изменяет запрос:
orWhere( function ($query) use($type_radio) {
$query->
whereHas('record', function ($query) use($type_radio) {
$query->where('type', $type_radio);
})->
get()->map(function ($query ) {
$query = $query->parent()->get();
Log::info($query );
return $query;
});
})
Ответы (1 шт):
Автор решения: Stanislav
→ Ссылка
Если хотите отфильтровать категории, то нужно использовать join. Как пример, использовать scope:
public function scopeCategories($query, $parentId)
{
return $query
->join('records', 'records.parent_id', 'categories.id')
->where('records.parent_id', $parentId)
}