路由错误的多个参数 laravel

Multiple parameter to route error laravel

我的控制器(单一产品)中有方法:

    public function singleProduct($slug)
{
   $product= Product::where('slug','=', $slug)->first();
   return view('public.product.show')->withProduct($product);
}

我的路线是:

Route::get('/{category}/{slug}',['as' => 'single.product', 'uses' => 'LinkController@singleProduct']);

查看我的代码:

<a href="{{ route('single.product', $product->category, $product->slug) }}">{{$product->title}}</a>

虽然我已经传递了 route.My 路由所需的两个参数,但返回错误:

Missing required parameters for [Route: single.product] [URI: {category}/{slug}].

在路由定义中你有 slug 和 category,但在方法中你实际上得到的只是 slug,所以将 $category 添加到 singleProduct 可能会有所帮助:

public function singleProduct($category, $slug)
{
   $product= Product::where('slug','=', $slug)->first();
   return view('public.product.show')->withProduct($product);
}

定义路由参数的正确方法如下:

route('single.product', ['category' => $product->category, 'slug' => $product->slug])

因此您看到的路线将是:

<a href="{{ route('single.product', ['category' => $product->category, 'slug' => $product->slug]) }}">{{$product->title}}</a>

Docs