如何根据laravel中的选择更改路线

时间:2019-04-12 09:35:08

标签: laravel laravel-5

我正在尝试创建一个页面,允许用户选择一种产品,然后当他们按“添加到购物车”时,该产品就会发送到购物车页面。

在我的产品页面上,我可以拥有附有2个或更多代码的同一商品,因此我创建了一个带有代码的选择,然后用户必须选择其中一个 然后按“添加到购物车”按钮转到购物车页面。

所以我目前拥有的方式是表单获取产品页面的ID,而不是选择框的ID。

我想知道的是如何根据所选内容更改路线。

这是我的代码

<form action="{{ route('product.addToCart', ['id' => $product->id]) }}" method="POST">
    {{ csrf_field() }}

    <div class="row">
        <div class="col-lg-12 pl-0">
            <select class="form-control mb-2" id="supplier_code" name="supplier_code">
                @foreach($parent_product as $parent)
                    <option value="{{ $parent->supplier_code }}">{{ $parent->supplier_code }}</option>

                    @if(count($parent->parent))
                        @foreach($parent->parent as $child)
                            <option value="{{ $child->supplier_code }}">{{ $child->supplier_code }}</option>
                        @endforeach
                    @endif
                @endforeach
            </select>
        </div>
    </div>


    {{ Form::submit('Add to Cart', array('class' => "btn btn-dark btn-lg btn-block")) }}
</form>

这是我的职责

public function getAddToCart(Request $request, $id)
{
    $menus_child = Menu::where('menu_id', 0)->with('menusP')->get();
    $contacts = Contact::all();

    $product = Product::find($id);

    $supplier_code = $request->supplier_code;

    $oldCart = Session::has('cart') ? Session::get('cart') : null;

    $cart = new Cart($oldCart);
    $cart->add($product, $product->id, $supplier_code);

    $request->session()->put('cart', $cart);

    return view('public.shopping-cart', ['products' => $cart->items, 'totalPrice' => $cart->totalPrice, 'menus_child' => $menus_child, 'contacts' => $contacts, 'supplier_code' => $supplier_code]);
}

这是我的产品列表页面,用户将在其中单击产品以获取其详细信息。

<div class="col-xl-9 col-lg-8 col-md-12 product-list">
    <div id="parent">
        <div class="row grid-container">
            @foreach($products as $product)
                <?php
                    $cat_slug = "";
                ?>

                @foreach($product->category as $category)
                    <?php
                        $cat_slug .= " ".$category->slug
                    ?>
                @endforeach

                <?php
                    $product_image = getImagesArray($product->image);
                ?>

                <div class="product_items col-xl-2 col-lg-4 col-md-4 col-sm-4 {{ $cat_slug }}">
                    <a href="{!! route('product.item', [$product->slug]) !!}">
                        <div>
                            @if(!empty($product_image))
                                <img src={!! "product_images/products/$product_image[0]" !!}>
                            @endif

                            <p>
                                {!! $product->title !!}
                            </p>
                        </div>
                    </a>
                </div>
            @endforeach
        </div>
    </div>
</div>

我不确定是否需要添加其他内容,所以如果需要,请告知我

1 个答案:

答案 0 :(得分:0)

更改此:

<a href="{!! route('product.item', [$product->slug]) !!}">

对此:

<a href="{{ route('product.item', $product->id) }}">