Laravel 按类别获取服务

问题描述 投票:0回答:1

必须仅显示该类别(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

问题如下 - 如何正确显示类别以及在每个类别中我的服务?我确信我做错了什么 - 但我找不到到底是什么。

php laravel collections laravel-blade eloquent-relationship
1个回答
0
投票

尝试修改你的控制器方法:

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
指定类别的所有服务。

© www.soinside.com 2019 - 2024. All rights reserved.