Ir al contenido principal

CRUD DE VENTAS CON LARAVEL 5.4


Hola a todos en este blog explicaremos como hacer un crud en laravel 5.4 y para empezar
tendremos en cuenta lo siguiente.

Objetivos

  • Diseñar un crud para la tabla ventas
  •  Crear un controlador de recursos para realizar el crud.
  •  Realizar una validación de datos con Laravel.
  • Traducir los mensajes de error de Laravel.
  • Diseñar las diferentes vista para el funcionamiento del crud de ventas
  • Definir las rutas para el funcionamiento del crud
  • Usar el modelo de datos de Laravel para conectarse con una tabla
Conocimientos Previos

  • Descarga de proyectos Laravel.
  • Uso de la consola de windows ( Puedes utilizar la terminal de visual).
  • Conocimientos básicos de programación php.
  • Definir funciones de php.
  • Definir rutas y rutas con parámetros.
  • Uso de base de datos de MySql.
  • Manejo de vistas y plantillas con Laravel.
  • Realizar peticiones al ORM de Laravel a través de un controlador 
Requisitos


  • Tener descargado un proyecto Laravel.
  • Tener creado el modelo, la migración ,el seeder y el controlador (si no sabes como hacerlo puedes guiarte de los vídeos anteriores.Abajo encontraras el link).
  • Tener activado  el apache y el mysql de la aplicación xampp.



Desarrollo:
1.-Tener activado MySql y apache a través de la aplicación de xampp



2.-Tener abierto el proyecto en visual code, en mi caso LaravelProyecto3 y tener lista la consola de window o la terminal que provee visual code.



3.-En la terminal escribiremos el controlador de recursos mediante el comando: php artisan make:controller VentasController --resource



4.-Abrir el archivo App/Http/Controllers/VentasController.php

En la sección de use escribimos
use App\Venta;


Y en la función de index escribiremos 
public function index()
{
$ventas = Venta::all();
return view('ventas.index',compact('ventas'));
}

5.-Guardar cambios, y en la carpeta de Views crear otra carpeta que se llamara ventas y dentro de ella crearemos un archivo que se llamara index.blade.php


6.-En el archivo de rutas definir la ruta para el controlador de recursos.



7.-En el archivo index copiar lo siguiente:

@extends('layouts.app')
@section('titulo4') 
Informacion de ventas
@endsection
@section('contenido')
<div class="panel panel-primary"> 
   <div class="panel-heading">
       <h3 class="panel-title">
           Tabla de las ventas realizadas
       </h3>
   </div>
   <div class="panel-body">
       <div class="row">
           <a href="#" class="btn btn-primary">Nuevo</a>
       </div>
       <div class="row"></div>
       <table class="table table-striped table-hover">
           <thead>
               <tr>
                   <th>Acciones</th>
                   <th>Cliente</th>
                   <th>Producto</th>
                   <th>Precio</th>
                   <th>Fecha de compra</th>
                   <th>Categoría</th>

               </tr>
           </thead>
           <tbody>
               @foreach($ventas as $venta)
             <tr>
                   <td>
                     <a href="#"class="btn btn-info">
    <span class="glyphicon glyphicon-pencil"aria-hidden="true"> </span>
                      </a>
                      <a href="#"class="btn btn-danger">
      <span class="glyphicon glyphicon-trash"aria-hidden="true"> </span
                      </a>
                   </td>
                   <td>
                   {{$venta->cliente}}
                   </td>
                   <td>
                   {{$venta->producto}}
                   </td>
                   <td>
                   {{$venta->precio}}
                   </td>
                   <td>
                   {{$venta->fecha}}
                   </td>
                   <td>
                   {{$venta->categoria}}
                   </td>
               </tr>
               @endforeach
           </tbody>

       </table>
   </div>
</div>
@endsection

8.- Hecho esto, guardado los cambios nos vamos al navegador y escribiremos:
http://localhost/LaravelProyecto3/public/ventas

Y como ves se agregaron los registros correctamente, con la funcion @foreach

9.-Guardar los cambios, y en el archivo de VentasController y en la función de create escribir lo siguiente:

public function create()
{
return view('ventas.create');
}

10.- En el archivo de Views/Ventas crear un archivo que se llamara create.blade.php


11.- Y en el copiar el código y marcas html

@extends('layouts.app')
@section('titulo4')
Mini super la autopista
@endsection

@section('contenido')
<div class="panel-info">
<div class="panel-heading" style="border: 1px solid">
<h3 class="panel-title">
Informacion de ventas
</h3>
</div>
<div class="panel-body" style="border: 1px solid">
<form method="POST" action="{{route('ventas.store')}}" class="">
{{csrf_field()}}
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="">Cliente</label>
<input type="text" class="form-control" name="cliente" autofocus
placeholder="Escriba el nombre del cliente">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="">Producto</label>
<select name="producto" class="form-control">
<option value="Arroz">Arroz</option>
<option value="Frijoles">Frijoles</option>
<option value="Aceite Vegetal">Aceite
Vegetal</option>
<option value="Maseca">Maseca</option>
<option value="Cafe">Cafe</option>
<option value="Sal">Sal</option>
<option value="Azucar">Azucar</option>
<option value="Harina">Harina</option>
<option value="Queso">Queso</option>
<option value="Leche">Leche</option>
<option value="Mantequilla">Mantequilla
</option>
<option value="Pollo">Pollo</option>
<option value="Mortadela">Mortadela</option>
<option value="Longanizas">Longanizas
</option>
<option value="Hot Dog">Hot Dog</option>
<option value="Copetines">Copetines</option>
<option value="Clavos">Clavos</option>
<option value="Martillo">Martillo</option>
<option value="Grapas">Grapas</option>
<option value="Desarmador">Desarmador
</option>
<option value="Tenaza">Tenaza</option>
<option value="Azadon">Azadon</option>
<option value="Pala">Pala</option>
<option value="Serrucho">Serrucho</option>
<option value="Libreta">Libreta</option>
<option value="Pluma">Pluma</option>
<option value="Lapiz">Lapiz</option>
<option value="Cuaderno">Cuaderno</option>
<option value="Marcador">Marcador</option>
<option value="Borrador">Borrador</option>
<option value="Sacapunta">Sacapunta</option>
<option value="Colores">Colores</option>
<option value="Jabon">Jabon</option>
<option value="Ase">Ase</option>
<option value="Cloro">Cloro</option>
<option value="Suavitel">Suavitel</option>
<option value="Shampoo">Shampoo</option>
<option value="Azistin">Azistin</option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label for="">Precio</label>
<input type="number" min="1" max="1000000" step="1"
title="Seleccione el Precio" class="form-control" name="precio" />
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="">Fecha</label>
<input type="date" name="fecha" class="form-control">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="">Categoria</label>

<select name="categoria" class="form-control">
<option value="Alimentos">Alimentos</option>
<option value="Embutidos">Embutidos</option>
<option value="Herramientas">Herramientas
</option>
<option value="Utiles Escolares">
Utiles Escolares</option>
<option value="Hogar">Hogar</option>
</select>

</div>
</div>
</div>
<div class="row">
<div class="col-md-1">
<button type="submit" class="btn btn-info">Guardar</button>
</div>

<div class="col-md-1" style="margin-left:10px">
<button type="reset" class="btn btn-danger">Cancelar</button>
</div>

</div>
</div>
@endsection

12.-En el archivo create heredamos el estilo de la plantilla app.blade.php, en este hemos escrito las marcas html para la creación del formulario en donde ingresarán y guardara los registros en la tabla de ventas mediante el metodo POST.

Después lo que haremos sera en el archivo de app/Venta.php dentro de la clase Venta agregamos lo siguiente:


namespace App;
use Illuminate\Database\Eloquent\Model;
class Venta extends Model
{ /** Copiar*/
protected $fillable = ['cliente', 'producto', 'precio', 'fecha', 'categoria'];
public $timestamps = true;
}

Para poder ver lo que llevamos hecho, en el archivo index.blade.php en el botón de nuevo agregamos lo siguiente:

<a href="{{route('ventas.create')}}" class="btn btn-info">Nuevo</a>

Una ves creada, nos vamos al navegador y escribimos localhost/LaravelProyecto2/public/create, y esta se vera de la siguiente manera:

13.-Ahora en el archivo VentasController y en el método store realizaremos una validación:

public function store(Request $request)
{
$this->validate($request, [
'cliente' => 'required',
'producto' => 'required',
'precio' => 'required',
'fecha' => 'required',
'categoria' => 'required'
}

Esto permite que se realice una validación de los valores capturados y genere un mensaje de error, y para mostrar los errores en https://laravel.com/docs/5.4/validation#quick-displaying-the-validation-errors  buscamos el if y lo copiamos en el create.blade.php despues del body





/** Despues del body copiar*/
@if ($errors->any())
<div class="alert alert-danger alert-dismissible">
<h4>
<strong>
<span class="glyphicon glyphicon-remove-sign" aria-hidden="true"></span>
Oops!
</strong>

</h4>
<p>Por favor verifique los siguientes datos:</p>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif


Quedara así:


Después debemos descargar los archivos de mensajes de laravel en español y para ello en este link lo buscamos https://github.com/sebgam/Laravel-lang/tree/master/es dentro del archivo lang creamos una carpeta y creamos un archivo para cada archivo copiamos el codigo y lo pegamos en respectivo archivo; auth, pagination, passwords, validation.



Hecho esto se guardan los cambios en cada archivo, procederemos a cambiar la carpeta de mensajes de idiomas y para ello abrimos el archivo config/app.php y en la linea 80 realice el cambio.



Cuando en el formulario dejemos un campo vació, saldrá lo que hemos agregado anteriormente


Y así será con los demás campos, si en la fecha no ingresamos ninguna fecha saldrá error ya que tenemos que seleccionar una fecha lo mismo pasara con el precio, si llenamos los campos menos el campo cliente cuando presionemos guardar dirá que el campo cliente es obligatorio, pero no se borrará los demás campos ingresados.

14.- Después de haber comprobado lo anterior procederemos a agregar la inserción del nuevo registro para ello en el archivo VentasController y en la función store  escribiremos lo siguiente




Cuando ingresemos un registro, al presionar en el botón guardar nos llevara a la lista donde hemos guardado el registro.


Ahora lo que haremos será recuperar los valores temporales cuando se produzcan mensajes validación para realizar esto utilizaremos el helper old() esto significa que cada uno de los controles del formulario en su propiedad value agregamos el helper old().

en el archivo de create.blade.php borramos todo el código y copiamos el siguiente con todo y la función old.

@extends('layouts.app')
@section('titulo4')
Mini super la autopista
@endsection

@section('contenido')
<div class="panel-info">
<div class="panel-heading" style="border: 1px solid">
<h3 class="panel-title">
Informacion de ventas
</h3>
</div>
<div class="panel-body" style="border: 1px solid">
@if ($errors->any())
<div class="alert alert-danger alert-dismissible">
<h4>
<strong>
<span class="glyphicon glyphicon-remove-sign" aria-hidden="true"></span>
Oops!
</strong>

</h4>
<p>Por favor verifique los siguientes datos:</p>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form method="POST" action="{{route('ventas.store')}}" class="">
{{csrf_field()}}
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="">Cliente</label>
<input type="text" class="form-control" name="cliente" value="{{old('cliente')}}" autofocus
placeholder="Escriba el nombre del cliente">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="">Producto</label>
<select name="producto" class="form-control">
<option value="Arroz" {{old('producto')=="Arroz"?"selected":''}}>Arroz</option>
<option value="Frijoles" {{old('producto')=="Frijoles"?"selected":''}}>Frijoles</option>
<option value="Aceite Vegetal" {{old('producto')=="Aceite Vegetal"?"selected":''}}>Aceite
Vegetal</option>
<option value="Maseca" {{old('producto')=="Maseca"?"selected":''}}>Maseca</option>
<option value="Cafe" {{old('producto')=="Cafe"?"selected":''}}>Cafe</option>
<option value="Sal" {{old('producto')=="Sal"?"selected":''}}>Sal</option>
<option value="Azucar" {{old('producto')=="Azucar"?"selected":''}}>Azucar</option>
<option value="Harina" {{old('producto')=="Harina"?"selected":''}}>Harina</option>
<option value="Queso" {{old('producto')=="Queso"?"selected":''}}>Queso</option>
<option value="Leche" {{old('producto')=="Leche"?"selected":''}}>Leche</option>
<option value="Mantequilla" {{old('producto')=="Mantequilla"?"selected":''}}>Mantequilla
</option>
<option value="Pollo" {{old('producto')=="Pollo"?"selected":''}}>Pollo</option>
<option value="Mortadela" {{old('producto')=="Mortadela"?"selected":''}}>Mortadela</option>
<option value="Longanizas" {{old('producto')=="Longanizas"?"selected":''}}>Longanizas
</option>
<option value="Hot Dog" {{old('producto')=="Hot Dog"?"selected":''}}>Hot Dog</option>
<option value="Copetines" {{old('producto')=="Copetines"?"selected":''}}>Copetines</option>
<option value="Clavos" {{old('producto')=="Clavos"?"selected":''}}>Clavos</option>
<option value="Martillo" {{old('producto')=="Martillo"?"selected":''}}>Martillo</option>
<option value="Grapas" {{old('producto')=="Grapas"?"selected":''}}>Grapas</option>
<option value="Desarmador" {{old('producto')=="Desarmador"?"selected":''}}>Desarmador
</option>
<option value="Tenaza" {{old('producto')=="Tenaza"?"selected":''}}>Tenaza</option>
<option value="Azadon" {{old('producto')=="Azadon"?"selected":''}}>Azadon</option>
<option value="Pala" {{old('producto')=="Pala"?"selected":''}}>Pala</option>
<option value="Serrucho" {{old('producto')=="Serrucho"?"selected":''}}>Serrucho</option>
<option value="Libreta" {{old('producto')=="Libreta"?"selected":''}}>Libreta</option>
<option value="Pluma" {{old('producto')=="Pluma"?"selected":''}}>Pluma</option>
<option value="Lapiz" {{old('producto')=="Lapiz"?"selected":''}}>Lapiz</option>
<option value="Cuaderno" {{old('producto')=="Cuaderno"?"selected":''}}>Cuaderno</option>
<option value="Marcador" {{old('producto')=="Marcador"?"selected":''}}>Marcador</option>
<option value="Borrador" {{old('producto')=="Borrador"?"selected":''}}>Borrador</option>
<option value="Sacapunta" {{old('producto')=="Sacapunta"?"selected":''}}>Sacapunta</option>
<option value="Colores" {{old('producto')=="Colores"?"selected":''}}>Colores</option>
<option value="Jabon" {{old('producto')=="Jabon"?"selected":''}}>Jabon</option>
<option value="Ase" {{old('producto')=="Ase"?"selected":''}}>Ase</option>
<option value="Cloro" {{old('producto')=="Cloro"?"selected":''}}>Cloro</option>
<option value="Suavitel" {{old('producto')=="Suavitel"?"selected":''}}>Suavitel</option>
<option value="Shampoo" {{old('producto')=="Shampoo"?"selected":''}}>Shampoo</option>
<option value="Azistin" {{old('producto')=="Azistin"?"selected":''}}>Azistin</option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label for="">Precio</label>
<input type="number" min="1" max="1000000" step="1" value="{{old('precio')}}"
title="Seleccione el Precio" class="form-control" name="precio" />
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="">Fecha</label>
<input type="date" name="fecha" class="form-control" value="{{old('fecha')}}">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="">Categoria</label>

<select name="categoria" class="form-control">
<option value="Alimentos" {{old('categoria')=="Alimentos"?"selected":''}}>Alimentos</option>
<option value="Embutidos" {{old('categoria')=="Embutidos"?"selected":''}}>Embutidos</option>
<option value="Herramientas" {{old('categoria')=="Herramientas"?"selected":''}}>Herramientas
</option>
<option value="Utiles Escolares" {{old('categoria')=="Utiles Escolares"?"selected":''}}>
Utiles Escolares</option>
<option value="Hogar" {{old('categoria')=="Hogar"?"selected":''}}>Hogar</option>
</select>

</div>
</div>
</div>
<div class="row">
<div class="col-md-1">
<button type="submit" class="btn btn-info">Guardar</button>
</div>

<div class="col-md-1" style="margin-left:10px">
<button type="reset" class="btn btn-danger">Cancelar</button>
</div>

</div>
</div>
@endsection

Aquí lo que hacemos es que, si llenamos todos los campos y dejamos uno vacío al presionar guardar no se perderán los campos ya llenados.


15.-Guarda los cambios de los pasos anteriores, el siguiente paso será escribir el llamado para poder editar la información del registro seleccionado y para ello en el archivo VentasController en la función edit escribiremos lo siguiente:
    $ventas= Venta::findOrFail($id);  
        return view('ventas.edit',compact('ventas'));

16- Una ves realizado lo anterior en el view en la carpeta ventas crearemos un archivo que se llamará edit.blade.php


17. como siguiente paso iremos al directorio  resources/views/ventas y abriremos el archivo edit.blade.php y escribiremos el siguiente código:

@extends('layouts.app')
@section('titulo4')
Mini super la autopista
@endsection
@section('contenido')
<div class="panel-info">
<div class="panel-heading" style="border: 1px solid">
<h3 class="panel-title">
Informacion de ventas
</h3>
</div>
<div class="panel-body" style="border: 1px solid">
@if ($errors->any())
<div class="alert alert-warning alert-dismissible" role="alert">
<h4>
<strong>
<span class="glyphicon glyphicon-sunglasses" aria-hidden="true"></span>
Oops!
</strong>
</h4>
<p>Por favor verifique los siguientes datos: </p>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form action="{{route('ventas.update',$ventas->id)}}" method="post"
accept-charset="UTF-8">
{{csrf_field()}}
{{ method_field('PUT')}}
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="">Cliente</label>
<input type="text" class="form-control" name="cliente" value="{{$ventas->cliente}}"
autofocus
placeholder="Escriba el nombre del cliente">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="">Producto</label>
<select name="producto" class="form-control">
<option value="Arroz" {{$ventas->producto=="Arroz"?"selected":''}}>Arroz</option>
<option value="Frijoles" {{$ventas->producto=="Frijoles"?"selected":''}}>Frijoles</option>
<option value="Aceite Vegetal" {{$ventas->producto=="Aceite Vegetal"?"selected":''}}>Aceite
Vegetal</option>
<option value="Maseca" {{$ventas->producto=="Maseca"?"selected":''}}>Maseca</option>
<option value="Cafe" {{$ventas->producto=="Cafe"?"selected":''}}>Cafe</option>
<option value="Sal" {{$ventas->producto=="Sal"?"selected":''}}>Sal</option>
<option value="Azucar" {{$ventas->producto=="Azucar"?"selected":''}}>Azucar</option>
<option value="Harina" {{$ventas->producto=="Harina"?"selected":''}}>Harina</option>
<option value="Queso" {{$ventas->producto=="Queso"?"selected":''}}>Queso</option>
<option value="Leche" {{$ventas->producto=="Leche"?"selected":''}}>Leche</option>
<option value="Mantequilla" {{$ventas->producto=="Mantequilla"?"selected":''}}>Mantequilla
</option>
<option value="Pollo" {{$ventas->producto=="Pollo"?"selected":''}}>Pollo</option>
<option value="Mortadela" {{$ventas->producto=="Mortadela"?"selected":''}}>Mortadela
</option>
<option value="Longanizas" {{$ventas->producto=="Longanizas"?"selected":''}}>Longanizas
</option>
<option value="Hot Dog" {{$ventas->producto=="Hot Dog"?"selected":''}}>Hot Dog</option>
<option value="Copetines" {{$ventas->producto=="Copetines"?"selected":''}}>Copetines
</option>
<option value="Clavos" {{$ventas->producto=="Clavos"?"selected":''}}>Clavos</option>
<option value="Martillo" {{$ventas->producto=="Martillo"?"selected":''}}>Martillo</option>
<option value="Grapas" {{$ventas->producto=="Grapas"?"selected":''}}>Grapas</option>
<option value="Desarmador" {{$ventas->producto=="Desarmador"?"selected":''}}>Desarmador
</option>
<option value="Tenaza" {{$ventas->producto=="Tenaza"?"selected":''}}>Tenaza</option>
<option value="Azadon" {{$ventas->producto=="Azadon"?"selected":''}}>Azadon</option>
<option value="Pala" {{$ventas->producto=="Pala"?"selected":''}}>Pala</option>
<option value="Serrucho" {{$ventas->producto=="Serrucho"?"selected":''}}>Serrucho</option>
<option value="Libreta" {{$ventas->producto=="Libreta"?"selected":''}}>Libreta</option>
<option value="Pluma" {{$ventas->producto=="Pluma"?"selected":''}}>Pluma</option>
<option value="Lapiz" {{$ventas->producto=="Lapiz"?"selected":''}}>Lapiz</option>
<option value="Cuaderno" {{$ventas->producto=="Cuaderno"?"selected":''}}>Cuaderno</option>
<option value="Marcador" {{$ventas->producto=="Marcador"?"selected":''}}>Marcador</option>
<option value="Borrador" {{$ventas->producto=="Borrador"?"selected":''}}>Borrador</option>
<option value="Sacapunta" {{$ventas->producto=="Sacapunta"?"selected":''}}>Sacapunta
</option>
<option value="Colores" {{$ventas->producto=="Colores"?"selected":''}}>Colores</option>
<option value="Jabon" {{$ventas->producto=="Jabon"?"selected":''}}>Jabon</option>
<option value="Ase" {{$ventas->producto=="Ase"?"selected":''}}>Ase</option>
<option value="Cloro" {{$ventas->producto=="Cloro"?"selected":''}}>Cloro</option>
<option value="Suavitel" {{$ventas->producto=="Suavitel"?"selected":''}}>Suavitel</option>
<option value="Shampoo" {{$ventas->producto=="Shampoo"?"selected":''}}>Shampoo</option>
<option value="Azistin" {{$ventas->producto=="Azistin"?"selected":''}}>Azistin</option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label for="">Precio</label>
<input type="number" min="1" max="1000000" step="1" value="{{$ventas->precio}}"
title="Seleccione el Precio" class="form-control" name="precio" />
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="">Fecha</label>
<input type="date" name="fecha" class="form-control"
value="{{date('Y-m-d',strtotime($ventas->fecha))}}">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="">Categoria</label>
<select name="categoria" class="form-control">
<option value="Alimentos" {{$ventas->categoria=="Alimentos"?"selected":''}}>Alimentos
</option>
<option value="Embutidos" {{$ventas->categoria=="Embutidos"?"selected":''}}>Embutidos
</option>
<option value="Herramientas" {{$ventas->categoria=="Herramientas"?"selected":''}}>
Herramientas</option>
<option value="Utiles Escolares" {{$ventas->categoria=="Utiles Escolares"?"selected":''}}>
Utiles Escolares</option>
<option value="Hogar" {{$ventas->categoria=="Hogar"?"selected":''}}>Hogar</option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-md-1">
<button type="submit" class="btn btn-info">Guardar</button>
</div>
<div class="col-md-1" style="margin-left:10px">
<a href="{{route('ventas.index')}}" class="btn btn-danger">Cancelar</a>
</div>
</div>

</div>

@endsection

El código y marcas html es el mismo que el create.blade.php pero ya no usaremos el atributo old()
ahora utilizas la variable que contiene la información ($ventas)

18.Ahora lo que haremos será ir a VentasController y en la funcion update escribimos lo
siguiente.

this->validate($request,[
            'cliente'  => 'required',

            'producto' => 'required',
           
            'categoria' => 'required',

            'fecha' => 'required',
           
            'precio' => 'required'
          
        ]);
        $ventas = Venta::findOrFail($id);
        $ventas->update($request->all());
        return redirect('/ventas')->with('message','update');

19. Seguiremos con el boton eliminar.

20. Vamos a VentasController  y buscamos el metodo o funcion show  y escribiremos las
siguientes líneas . 
 $ventas= Venta::findOrFail($id); 
       return view('ventas.show',compact('ventas'));


21. Ahora crearemos la carpeta show.blade.php en resources/views/ventas,cuando ya
tengamos el archivo lo que vamos  a hacer es copiar la siguiente linea de codigo.

@extends('layouts.app')
@section('titulo4')
Mini super la autopista
@endsection
@section('contenido')
<div class="panel-info">
<div class="panel-heading" style="border: 1px solid">
<h3 class="panel-title">
Informacion de ventas
</h3>
</div>
<div class="panel-body" style="border: 1px solid">
@if ($errors->any())
<div class="alert alert-warning alert-dismissible" role="alert">
<h4>
<strong>
<span class="glyphicon glyphicon-sunglasses" aria-hidden="true"></span>
Oops!
</strong>
</h4>
<p>Por favor verifique los siguientes datos: </p>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form action="{{route('ventas.destroy',$ventas->id)}}" method="post" accept-charset="UTF-8" >
{{csrf_field()}}
{{ method_field('DELETE')}}
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="">Cliente</label>
<input type="text" class="form-control" name="cliente" value="{{$ventas->cliente}}" autofocus
placeholder="Escriba el nombre del cliente"disabled>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="">Producto</label>
<select name="producto" class="form-control"disabled>
<option value="Arroz" {{$ventas->producto=="Arroz"?"selected":''}}>Arroz</option>
<option value="Frijoles" {{$ventas->producto=="Frijoles"?"selected":''}}>Frijoles</option>
<option value="Aceite Vegetal" {{$ventas->producto=="Aceite Vegetal"?"selected":''}}>Aceite
Vegetal</option>
<option value="Maseca" {{$ventas->producto=="Maseca"?"selected":''}}>Maseca</option>
<option value="Cafe" {{$ventas->producto=="Cafe"?"selected":''}}>Cafe</option>
<option value="Sal" {{$ventas->producto=="Sal"?"selected":''}}>Sal</option>
<option value="Azucar" {{$ventas->producto=="Azucar"?"selected":''}}>Azucar</option>
<option value="Harina" {{$ventas->producto=="Harina"?"selected":''}}>Harina</option>
<option value="Queso" {{$ventas->producto=="Queso"?"selected":''}}>Queso</option>
<option value="Leche" {{$ventas->producto=="Leche"?"selected":''}}>Leche</option>
<option value="Mantequilla" {{$ventas->producto=="Mantequilla"?"selected":''}}>Mantequilla
</option>
<option value="Pollo" {{$ventas->producto=="Pollo"?"selected":''}}>Pollo</option>
<option value="Mortadela" {{$ventas->producto=="Mortadela"?"selected":''}}>Mortadela</option>
<option value="Longanizas" {{$ventas->producto=="Longanizas"?"selected":''}}>Longanizas
</option>
<option value="Hot Dog" {{$ventas->producto=="Hot Dog"?"selected":''}}>Hot Dog</option>
<option value="Copetines" {{$ventas->producto=="Copetines"?"selected":''}}>Copetines</option>
<option value="Clavos" {{$ventas->producto=="Clavos"?"selected":''}}>Clavos</option>
<option value="Martillo" {{$ventas->producto=="Martillo"?"selected":''}}>Martillo</option>
<option value="Grapas" {{$ventas->producto=="Grapas"?"selected":''}}>Grapas</option>
<option value="Desarmador" {{$ventas->producto=="Desarmador"?"selected":''}}>Desarmador
</option>
<option value="Tenaza" {{$ventas->producto=="Tenaza"?"selected":''}}>Tenaza</option>
<option value="Azadon" {{$ventas->producto=="Azadon"?"selected":''}}>Azadon</option>
<option value="Pala" {{$ventas->producto=="Pala"?"selected":''}}>Pala</option>
<option value="Serrucho" {{$ventas->producto=="Serrucho"?"selected":''}}>Serrucho</option>
<option value="Libreta" {{$ventas->producto=="Libreta"?"selected":''}}>Libreta</option>
<option value="Pluma" {{$ventas->producto=="Pluma"?"selected":''}}>Pluma</option>
<option value="Lapiz" {{$ventas->producto=="Lapiz"?"selected":''}}>Lapiz</option>
<option value="Cuaderno" {{$ventas->producto=="Cuaderno"?"selected":''}}>Cuaderno</option>
<option value="Marcador" {{$ventas->producto=="Marcador"?"selected":''}}>Marcador</option>
<option value="Borrador" {{$ventas->producto=="Borrador"?"selected":''}}>Borrador</option>
<option value="Sacapunta" {{$ventas->producto=="Sacapunta"?"selected":''}}>Sacapunta</option>
<option value="Colores" {{$ventas->producto=="Colores"?"selected":''}}>Colores</option>
<option value="Jabon" {{$ventas->producto=="Jabon"?"selected":''}}>Jabon</option>
<option value="Ase" {{$ventas->producto=="Ase"?"selected":''}}>Ase</option>
<option value="Cloro" {{$ventas->producto=="Cloro"?"selected":''}}>Cloro</option>
<option value="Suavitel" {{$ventas->producto=="Suavitel"?"selected":''}}>Suavitel</option>
<option value="Shampoo" {{$ventas->producto=="Shampoo"?"selected":''}}>Shampoo</option>
<option value="Azistin" {{$ventas->producto=="Azistin"?"selected":''}}>Azistin</option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label for="">Precio</label>
<input type="number" min="1" max="1000000" step="1" value="{{$ventas->precio}}"
title="Seleccione el Precio" class="form-control" name="precio" disabled />
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="">Fecha</label>
<input type="date" name="fecha" class="form-control" value="{{date('Y-m-d',strtotime($ventas->fecha))}}"disabled>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="">Categoria</label>
<select name="categoria" class="form-control"disabled>
<option value="Alimentos" {{$ventas->categoria=="Alimentos"?"selected":''}}>Alimentos</option>
<option value="Embutidos" {{$ventas->categoria=="Embutidos"?"selected":''}}>Embutidos</option>
<option value="Herramientas" {{$ventas->categoria=="Herramientas"?"selected":''}}>Herramientas
</option>
<option value="Utiles Escolares" {{$ventas->categoria=="Utiles Escolares"?"selected":''}}>
Utiles Escolares</option>
<option value="Hogar" {{$ventas->categoria=="Hogar"?"selected":''}}>Hogar</option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-md-1">
<button type="submit" class="btn btn-info">Eliminar</button>
</div>
<div class="col-md-1" style="margin-left:10px">
<a href="{{route('ventas.index')}}" class="btn btn-danger">Cancelar</a>
</div>
</div>
</div>
@endsection


22. Como siguiente paso vamos a ir a VentasController y nos ubicaremos en el método o función destroy y escribiremos lo siguiente.

$ventas = Venta::findOrFail($id);
$ventas->delete();
return redirect('/ventas')->with('message','delete');


23. Agregaremos lo que son los mensajes de alerta para ello abriremos el archivo index.blade.php
Y agregaremos  la siguiente línea de código y  lo colocaremos debajo del botón nuevo.
        $message = Session::get('message');
        $mensaje="";
        if ($message==  'store')
        $mensaje="La información ha sido almacenada correctamente";
        elseif ($message==  'update')
        $mensaje="La informacion ha sido actualizada correctamente";
        elseif ($message==  'delete')
        $mensaje="La informacion fue eliminada correctamente";
       ?>
        @if(empty($mensaje)==false)
        <div class="row">
            <div class="alert alert-success alert-dismissable">
                <button type="button" class="close" data-dismiss="alert"> ×</button>
                <h4 class="alert-heading">{{$mensaje}}!</h4>
                <hr>
                <p class="mb-0">Puede verificar que los datos proporcionados esten correctos, utilice la siguiente lista
                </p>
            </div>
        </div>
              @endif








Comentarios