必须仅显示该类别(4 个类别)中的服务。
public function services() : belongsToMany
{
return $this->belongsToMany(Services::class);
}
///
public function categories() : belongsToMany
{
return $this->belongsToMany(Category::class);
}
但是我还需要从web.php中构建路由
Route::get('categories/{alias}/{serviceAlias}', ....)
在控制器中我有这个代码
#[NoReturn] public function getCategoriesItem($alias) -- (GET Services in select Category)
{
$data = Category::with('services')->where('alias', $alias)->get();
return view('template.categories.show', compact('data'))->with('alias', $alias);
}
#[NoReturn] public function getServicesFormCategory($services) -- (GET services information)
{
$servicesGet = Service::where('alias', $services)->first();
return view('template.categories.show.service.show', compact('servicesGet'))->with('alias', $services);
}
查看类别中的服务
@foreach($data as $item)
@foreach($item->services as $service)
{{$service->alias}} - {{$service->title}}
<a href="{{route('categories.get.services', $service->alias)}}">{{$service->title}}</a>
@endforeach
@endforeach
查看服务
@foreach($servicesGet as $item)
{{$items->title}} <br> {{$item->desc}} <br>{{$item->price}}
@endforeach
问题如下 - 如何正确显示类别以及在每个类别中我的服务?我确信我做错了什么 - 但我找不到到底是什么。
尝试修改你的控制器方法:
public function getCategoriesItem($alias)
{
$category = Category::with('services')->where('alias', $alias)->first();
return view('template.categories.show', compact('category'))->with('alias', $alias);
}
然后,在您的 Blade 文件中,您可以迭代此类别的服务。
@foreach($category->services as $service)
{{$service->alias}} - {{$service->title}}
<a href="{{route('categories.get.services', $service->alias)}}">{{$service->title}}</a>
@endforeach
这将显示属于
$alias
指定类别的所有服务。