Вы можете добавить метод в модель элементов, чтобы проверить, равна ли категория элементов этой категории или нет. так что вы можете проверить это так:
Метод в модели элементов, который проверяет идентификатор категории:
public function isInCategory($category_id){
//get all $category_ids
$category_ids = $this->categories()->pluck('id')->toArray();
//check if $category_id exists in $category_ids array
if(is_array($category_ids) && in_array($category_id,$category_ids))
return true;
return false;
}
Или вы можете сделать это с помощью этого метода
public function isInCategory($category_id){
return $this->categories->contains($category_id);
}
Оба метода работают нормально. Но не забудьте написать этот метод в Элемент модели .
Так что вы можете использовать его в своем коде так:
// Get a single category with containing items
$category = Catgegory::whereNull('is_deleted')
->where('id', 1)
->with('items')
->first();
// Get all items
$allItems = Item::whereNull('is_deleted')
->get();
// check the category id
foreach ($allItems as $item) {
$item->isInCategory($category->id) // returns true or false
}