Как мне изменить маршрут в зависимости от выбора в Laravel - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь создать страницу, которая позволяет пользователю выбрать продукт, а затем, когда он нажимает «добавить в корзину», этот продукт затем отправляется на страницу корзины.

На моей странице товара у меня может быть тот же элемент, к которому прикреплено 2 или более кодов, поэтому я создал выбор, содержащий коды, и пользователь затем должен выбрать один из них. а затем нажмите кнопку «Добавить в корзину», чтобы перейти на страницу корзины.

Таким образом, в настоящий момент я понимаю, что форма получает идентификатор страницы продукта, а не поля выбора.

Я хотел бы знать, как мне изменить маршрут в зависимости от того, что я выбрал.

Вот мой код

<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 голосов
/ 12 апреля 2019

Изменить это:

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

к этому:

<a href="{{ route('product.item', $product->id) }}"> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...