我目前是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显示
更新:我错过了一个路线,所以导航栏现在工作
答案 0 :(得分:2)
你认为你有错误,
而不是{{route('front.product.show'),['id' =>$shirt->pro_id]}}
需要
{{route('front.product.show',['id' =>$shirt->pro_id])}}
。
对其余路线front.product.show
执行相同的操作。