代码之家  ›  专栏  ›  技术社区  ›  lara

Laravel我的排序过滤器不工作,但我没有错误或消息

  •  0
  • lara  · 技术社区  · 1 年前

    //我的路线

    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种产品,所以我想类别不存在。为什么以及如何修复?非常感谢。

    1 回复  |  直到 1 年前
        1
  •  1
  •   zlatan    1 年前

    根据上述路线定义,您的路线接受 categorie 参数,而不是 slug .

    鉴于此,请更改您的路线:

    <a href="{{route('catalogue',['categorie'=>$categorie->slug])}}">