路由获取GET值通过Laravel 5.2中的href传递

时间:2016-08-23 06:06:59

标签: routes laravel-5.2 anchor

亲爱的所有好人,

我正在使用Laravel 5.2创建一个电子商务平台(非常新的),我想制作一个锚标记,当你点击它时会将GET值传递给路线。它实际上转到下面的链接 http://localhost:8000/products/803160151?product_choice_id=1 但改为404页面。我想是我以错误的方式编写了路由功能?请在下面找到我的代码供您参考,如果您需要更多信息,请告诉我。感谢。

routes.php文件

Route::get('products/{product_code}?product_choice_id={product_choice_id}', function($product_code, $product_choice_id){
      $product = Product::where('product_code',$product_code)->firstOrFail();
    $product_choice = Product_Choice::where('id', $product_choice_id)->get();
    $reviews = Review::where('product_id', $product->id)->get();
    $stars = Review::where('product_id', $product->id)->pluck('stars');    
    if(count($stars)){
        $total_stars = collect($stars)->sum()/count($stars);
        }   else {
            $total_stars = "not rated yet";
        };
    return view('products.details')
        ->with('product', $product)
        ->with('product_choice',$product_choice)
        ->with('reviews',$reviews)
        ->with('stars',$stars)
        ->with('total_stars',$total_stars);
});

interface.blade.php

    @php
      $product_choice = App\Product_Choice::where('product_id',$product->id)->where('default',1)->firstOrFail()
    @endphp

<a class="aa-product-img" href="{{ url('/products').'/'.$product->product_code.'?product_choice_id='.$product_choice->id }}">

1 个答案:

答案 0 :(得分:0)

您无需定义参数。只需定义路线

Route::get('prdoucts/{product_code}', function(Request $request) {
    $product_choice_id = $request->input('product_choice_id');
});

别忘了添加

use Illuminate\Http\Request;

在请求中,您将找到所有GET参数。这也适用于post / put / patch / delete - 当然你需要定义使用这些方法的路径