路由错误层

时间:2016-12-06 12:09:04

标签: php laravel blade laravel-5.3

我的控制器中有方法(singleProduct):

    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>

虽然我已经通过了路由所需的两个参数。我的路由返回错误:

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

2 个答案:

答案 0 :(得分:3)

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

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

因此,您在视野中的路线将如下:

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

Docs

答案 1 :(得分:0)

在路线定义中你有slug和类别,但是在方法中你实际上只是slug,所以也许可以帮助添加$ category到singleProduct:

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