我試圖顯示父項和子類別上的項目數。到目前爲止,計數僅在子類別中可見,但僅在分配給父目錄的項目顯示0
。我在Category
模型父類別上未顯示項目數
public function addRelation($categoires)
{
$categoires->map(function($item, $key)
{
$sub = $this->selectChild($item->id);
$item->itemCount = $this->getItemCount($item->id , $item->parent_id);
return $item = array_add($item, 'subCategory', $sub);
});
return $categoires;
}
public function getItemCount($category_id, $parent_id)
{
if($parent_id == 0)
{ // for root-caregory
$ids = Category::select('id')->where('parent_id', $category_id)->get();
$array = array();
foreach ($ids as $id)
{
$array[] = $id->id;
}
return Item::whereIn('category_id', $array)->count();
}
else
{
return Item::where('category_id', $category_id)->count();
}
}
在我的刀片添加了這個在控制器
$Category = new Category;
$allCategories = $Category->getCategories();
return view('home', compact('allCategories'));
而且
@foreach($allCategories as $category)
<div class="card-body">
<h4 class="card-title">{!!$category->title!!} <span class="badge badge-primary badge-pill">({!! $category->itemCount !!})</span></h4>
</div>
@endforeach
itemCount
是(0)時,產品在Parent
類別。
有是你的邏輯問題!沒有任何情況下其他區塊將被執行,總是隻會執行第一個區塊! – Maraboc
還有一件事,你可以將集合'$ ids'轉換爲像這樣的'$ ids-> toArray()'這樣的數組,它可以循環使用它的項目;並且你是否知道你應該做什麼? – Maraboc
@Maraboc,否則執行塊。在foreach裏面,我有另一個涉及子類別的foreach。正如我所說的那樣,它正在按照我所說的那樣工作,這就是爲什麼我將它從問題中刪除的原因。不,我沒有計算出如何顯示主要類別中的項目數量。 – Peter