как отправить данные из представления в контроллер в laravel - PullRequest
1 голос
/ 03 июля 2019

Я делаю веб-приложение, и я попадаю в точку, где я не могу двигаться вперед, я не знаю, как это сделать, я начинаю с laravel, поэтому, возможно, решение очень простое:

public function detalle($id){

    // $nota = App\Nota::find($id);

    //Aquí valida si existe sino redirije al 404
    $producto = App\Producto::findOrFail($id);

    $cantidad = 1;

    return view('productos.detalle', compact('producto','cantidad'));
}

Вид:

<div class="card col-6 ">
    <div class="card-body card-buy">
        <h1 class="display-4 ">{{$producto->nombre}}</h1>
        <p class="h3 mt-5">S/ {{$producto->precio}}</p>

        <div class="form-inline">
            <i class="fas fa-credit-card h1 mr-1"></i>
            <p class="mt-2  "> <b>Metodo de pago:</b> A convenir</p>
        </div>

        <div class="form-inline">
            <i class="fab fa-mailchimp ml-2 mr-2 h1"></i>
            <p class="mt-2  "> <b>Envio:</b> Disponible a todo el pais</p>
        </div>

        <div class="form-inline ">
            <div class="mt-n5 mr-2">
                <b>Cantidad:</b>
            </div>

            <div class="def-number-input number-input safari_only">
                <button onclick="this.parentNode.querySelector('input[type=number]').stepDown()" class="minus"></button>
                <input readonly="readonly" class="quantity" min="1" max="{{$producto->stock}}" name="quantity" value="{{$cantidad}}" type="number">
                <button onclick="this.parentNode.querySelector('input[type=number]').stepUp()" class="plus"></button>
            </div>

            <div class="mt-n5 ml-2">
                <b class="text-decoration-none"> ( {{$producto->stock}} disponibles)</b>
            </div>

        </div>

        <a href="{{ route('productos.compra', $producto) }}" class=" align-bottom btn btn-success btn-lg btn-block ">Comprar</a>

    </div>
</div>

https://gyazo.com/febcd4c38cb3ef244e7424a3d92079a4

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

Но я хочу, чтобы тот номер, который выбрал человек, перешел к следующему виду, который должен подтвердить

https://gyazo.com/f56cf578808e75a0fab25eeffa8d2c5d

но эти данные {{$ cantidad}} я не знаю, как передать их в это новое представление, я поставил код:

Контроллер:

public function detallescompra($id){
    $producto = App\Producto::findOrFail($id);
    $total = 0;
    $num1 = $producto->precio;
    $num2 = $producto->stock;
    $total = $num1 * $num2;
    return view('productos.compra', compact('producto','total'));
}

и в представлении:

<div class="container">
    <div class="row" id="contenido">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header d-flex justify-content-between align-items-center">
                    <span>Revisa y Confirma</span>
                    <a href="/home" class="btn btn-primary btn-sm">Seguir viendo...</a>
                </div>
                <div class="card-body">
                    @if ( session('mensaje') )
                    <div class="alert alert-success">{{ session('mensaje') }}</div>
                    @endif
                    <form method="POST" action="{{ route ('productos.comprafinal') }}">
                        @csrf

                        <label class="text-gray">Contacto y Envio:</label>
                        <div id="contenido">

                            <input type="name" name="usuario" placeholder="Nombre y Apellido" class="form-control mb-2" required />
                            <input type="email" name="email" placeholder="Email de contacto" class="form-control mb-2" required />
                            <input type="number" name="tlf" placeholder="Numero de telefono" class="form-control mb-2" />

                            <input type="street-address" name="direccion" placeholder="Direccion (Calle - #Casa - Referencia)" class="form-control mb-2" validate required />

                            <input type="text" name="id" placeholder="" class="form-control mb-2 d-none" value="{{$producto->id}}" />

                            <input type="text" name="timestamps" placeholder="" class="form-control mb-2 d-none" value="{{$producto->timestamp}}" />

                            <label class="text-gray">Producto:</label>
                            <input type="text" name="nombre" placeholder="Precio del Producto" class="form-control mb-2" value="{{$producto->nombre}}" readonly="readonly" />

                            <input type="text" name="precio" placeholder="Precio del Producto" class="form-control mb-2" value="Precio por unidad: S/ {{$producto->precio}}" readonly="readonly" id="valor1" />

                            <input type="text" name="cantidad" placeholder="Precio del Producto" class="form-control mb-2" value="Numero de productos: " readonly="readonly" id="valor2" />

                            <input type="text" name="" placeholder="Precio del Producto" class="form-control mb-2" value="Total a pagar: S/ {{$total}}" readonly="readonly" id="total" />

                            <button class="btn btn-success btn-block" type="submit">Comprar</button>
                        </div>

                    </form>

                </div>
            </div>
        </div>
        <div class="col-mod-4">
            <div class="card" style="width: 18rem;">
                <img src="{{$producto->img}}" class="card-img-top" alt="...">

            </div>
        </div>
    </div>

Мне просто нужно потратить {{$ cantidad}} на мой взгляд productos.compra. Пока я пробовал много вещей, но ничто не дало мне даже минимального результата

Я новичок в этом, мне нужна помощь: (

1 Ответ

0 голосов
/ 03 июля 2019

GG: D

public function detallescompra(Request $request,$id){

            $producto = App\Producto::findOrFail($id);

            $cantidad = $request->input('cantidad');     


            $total = 0;
            $num1 = $producto->precio;
            $num2 = $cantidad;
            $total = $num1 * $num2;



            return view('productos.compra', compact('producto','total','cantidad'));
        }

Просмотр:

<form action="{{ route('productos.compra-confirm', $producto) }}" method="POST"> 
            @csrf
            <div class="form-inline ">
              <div class="mt-n5 mr-2">
              <b>Cantidad:</b>
              </div>

            <div class="def-number-input number-input safari_only">           
            <button type="button" onclick="this.parentNode.querySelector('input[type=number]').stepDown()" class="minus"></button>
            <input readonly="readonly" class="quantity" min="1" max="{{$producto->stock}}" name="cantidad" value="{{$cantidad}}" type="number">
            <button type="button" onclick="this.parentNode.querySelector('input[type=number]').stepUp()" class="plus"></button>
          </div>

          <div class="mt-n5 ml-2">
              <b class="text-decoration-none"> ( {{$producto->stock}} disponibles)</b>
              </div>

            </div>


            <button type="submit"  class=" align-bottom btn btn-success btn-lg btn-block ">Comprar</button>



            </div>
            </div>
        </form>

маршруты веб:

Route::post('/comprar/{id}', 'HomeController@detallescompra')->name('productos.compra-confirm');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...