Laravel在动态导航栏上显示产品页面链接

时间:2018-01-24 07:04:11

标签: php laravel-5 routing

我目前是laravel的新手,我试图创建一个包含3个类别的导航栏(衬衫有cat_id = 8),(裤子有cat_id = 9)和(穿着cat_id = 10) 我有产品表和catergories表通过两个表上的cat_id collumn连接

我试图在用户点击该类别下的产品链接时进行此操作,它将使用自己的pro_id将其保留到该产品视图 这里我的控制器带有主页的变量

 public function index()
    {
        $pro_shirt=Products::where('cat_id','8')->get();
        $pro_pant=Products::where('cat_id','9')->get();
        $pro_dress=Products::where('cat_id','10')->get();
        return view('front.home',compact('pro_shirt','pro_pant','pro_dress'));
    }

这里是我的产品页链接路线

Route::get('/product/{id}',['as' => 'front.product.show', 'uses' => 'HomeController@product']);

该产品页面的控制器功能

   public function product($id){
        $product = Products::where('pro_id',$id)->Paginate(1);
        return view('front.product.product', compact('product'));
    }

这是我在刀片主视图中的导航栏

<div class="col1">
                                    <div class="h_nav">
                                        <a href="{{route('front.category.show', ['id' =>8]) }}"><h4>Shirt</h4></a>
                                        <ul>
                                        @foreach($pro_shirt as $shirt)
                                              <li><a href="{{route('front.product.show'),['id' =>$shirt->pro_id]}}">{{$shirt->pro_title}}</a></li>
                                        @endforeach
                                        </ul>
                                    </div>
                                </div>
                                <div class="col1">
                                    <div class="h_nav">
                                        <a href="{{route('front.category.show', ['id' =>9]) }}"><h4>Pant</h4></a>
                                        <ul>
                                        @foreach($pro_pant as $pant)
                                              <li><a href="{{route('front.product.show'),['id' =>$pant->pro_id]}}">{{$pant->pro_title}}</a></li>
                                        @endforeach
                                        </ul>
                                    </div>
                                </div>
                                <div class="col1">
                                    <div class="h_nav">
                                        <a href="{{route('front.category.show', ['id' =>10]) }}"><h4>Dress</h4></a>
                                        <ul>
                                        @foreach($pro_dress as $dress)
                                              <li><a href="{{route('front.product.show'),['id' =>$dress->pro_id]}}">{{$dress->pro_title}}</a></li>
                                        @endforeach
                                        </ul>
                                    </div>
                                </div>

当我尝试点击每个产品链接时,它会显示

Missing required parameters for [Route: front.product.show] [URI: product/{id}]. (View: C:\xampp\htdocs\webshop\resources\views\front\extends\master.blade.php) 

我不知道为什么该产品的pro_id没有显示,但pro_title显示

更新:我错过了一个路线,所以导航栏现在工作

1 个答案:

答案 0 :(得分:2)

你认为你有错误, 而不是{{route('front.product.show'),['id' =>$shirt->pro_id]}}需要 {{route('front.product.show',['id' =>$shirt->pro_id])}}
对其余路线front.product.show执行相同的操作。