//我的路线
Route::get('catalogue/{categorie?}','App\Http\Controllers\CatalogueController@index')->name('catalogue');
//我的功能
function index($categorie = null )
{
if($categorie)
{
$products = \App\Models\Category::where('slug',$categorie)
->first()
->products()->paginate(12);
}else{
$products = \App\Models\Product::paginate(3);
}
$categories = \App\Models\Category::all();
$brands = \App\Models\Brand::all();
return view('catalogue.index',compact('products','categories','brands'));
}
//我的看法
<ul>
@foreach($categories as $categorie)
<li> <a href="{{route('catalogue',['slug'=>$categorie->slug])}}">{{$categorie->name}}</a> </li>
@endforeach
</ul>
我尝试按类别显示我的产品。例如,如果我单击一个类别,则应显示属于该类别的所有产品,但它们不会。我观察到 URL 似乎有效(参见屏幕),但无论我选择哪个类别单击我总是只有相同的 3 种产品,所以我猜类别不存在。为什么以及如何修复它?谢谢你
根据上面的路线定义,您的路线接受
categorie
参数,而不是 slug
。
为此更改您的路线:
<a href="{{route('catalogue',['categorie'=>$categorie->slug])}}">