У меня есть код, где я получаю все категории и подкатегории из таблицы, но я хочу получить одну категорию и ее подкатегории из таблицы категорий, отображаемой в навигационном файле лезвия laravel.
Например, у меня есть категории обуви и рубашек и их подкатегории в таблице, я хочу отображать только категорию рубашек и ее подкатегории в передней части. пожалуйста, помогите мне достичь этого.
Я получаю все категории и подкатегории из таблицы
Маршрут:
//here i have added route url for link and well to display categories
Route::get('/products/{url}', 'ProductController@products');
Метод контроллера:
//this is function/method
public function products($url = null)
{
$countCategory = Category::where(['url'=>$url, 'status'=>1])->count();
if($countCategory==0){
abort(404);
}
//Get All Categories and Sub Categories
$categories = Category::with('categories')->where(['parent_id' => 0])->get();
$categoryDetails = Category::where(['url' => $url])->first();
if ($categoryDetails->parent_id==0) {
//if url is main category url
$sub_categories = Category::where(['parent_id'=>$categoryDetails->id])->get();
foreach ($sub_categories as $sub_cat) {
$cat_ids[] = $sub_cat->id;
}
// echo $cat_ids; die;
$productsAll = Product::whereIn('category_id',$cat_ids)->where('status', 1)->get();
} else {
$productsAll = Product::where(['category_id' => $categoryDetails->id])->where('status', 1)->get();
}
return view('products.listing')->with(compact('categories', 'categoryDetails', 'productsAll'));
}
Категория Модель:
public function categories()
{
return $this->hasMany('App\Category', 'parent_id');
}
Balde (Просмотр) файл:
<div class="side-bar col-md-12">
<h3 class="agileits-sear-head">Category</h3>
<div class="panel-group" id="accordian">
{{-- this is the basic way to show the categores inthe table --}}
<?php //echo $categories_menu ?>
@foreach ($categories as $cat)
@if($cat->status=="1")
<div class="panel-heading" >
<h4 class="panel-title">
<a href="#{{ $cat->id }}" data-toggle="collapse" data-parent="#accordian">
<span class="badge pull-right"><i class="fa fa-plus"></i></span>
{{ $cat->name }}
</a>
</h4>
</div>
<div id="{{ $cat->id }}" class="panel-collapse collapse">
<div class="panel-body" >
<ul style="list-style: none; margin-left:30px;">
@foreach ($cat->categories as $sub_cat)
@if($sub_cat->status=="1")
<li><a href="{{ asset('/products/'.$sub_cat->url) }}" style="color:orange;">{{ $sub_cat->name }}</a></li>
@endif
@endforeach
</ul>
</div>
</div>
@endif
@endforeach
</div>
</div>
Я ценю решение как можно раньше
Сэр, у меня есть вопрос, что я не хочу отображать все свои категории на боковой панели, вместо того, чтобы я хотел отображать только одну категорию, такую как категория обуви и ее подкатегорию, пожалуйста, укажите, как этого добиться. а также я хочу другую боковую панель для разных категорий,
пример,
давайте предположим, что у нас есть страница со списком футболок, где все футболки, футболки и многие другие футболки относятся только к категории футболок.
и я хочу, чтобы на боковой панели отображались только рубашки и их подкатегории.
если у меня есть категория обуви и я хочу, чтобы на боковой панели отображалась только категория обуви и ее подкатегория.
, пожалуйста, подскажите мне, как этого добиться,