Controlador create() y store($request) en Laravel 8

Más
2 años 2 meses antes - 2 años 2 meses antes #17 por luispindola
1.- Se crea la vista de formulario de usuarios: (Incluyendo mostrar errores de validación):

Creamos la vista: /view/usuarios/create.blade.php
@extends('layout.fixednavbar')

@section('contenido')
<div class="jumbotron">
    <h1>Nuevo Usuario</h1>
    <form 
        name="form1" 
        role="form" 
        method="post" 
        action="{{url('/usuarios')}}">

        @csrf
        @if ($errors->any())
            <div class="alert alert-danger">
                <ul>
                    @foreach ($errors->all() as $error)
                        <li>{{ $error }}</li>
                    @endforeach
                </ul>
            </div>
        @endif
        <div class="mb-3">
          <label for="nombre" class="form-label">Nombre:</label>
          <input type="text" class="form-control @error('nombre') is-invalid @enderror" id="nombre" 
          name="nombre" 
          value="{{old('nombre')}}" 
          placeholder="Nombre de usuario">
          @error('nombre')<div class="alert alert-danger">{{ $message }}</div>@enderror
        </div>

        <div class="mb-3">
          <label for="email" class="form-label">Correo electrónico:</label>
          <input type="mail" class="form-control @error('email') is-invalid @enderror" id="email" 
          name="email"
          value="{{old('email')}}" 
          placeholder="Correo electrónico">
          @error('email')<div class="alert alert-danger">{{ $message }}</div>@enderror
        </div>

        <div class="mb-3">
          <label for="password" class="form-label">Contraseña:</label>
          <input type="password" class="form-control @error('password') is-invalid @enderror" id="password" 
          name="password"
          value="{{old('password')}}" 
          placeholder="Contraseña">
          @error('password')<div class="alert alert-danger">{{ $message }}</div>@enderror
        </div>

        <div class="mb-3">
          <label for="password2" class="form-label">Confirmar Contraseña:</label>
          <input type="password" class="form-control @error('password2') is-invalid @enderror" id="password2" 
          name="password2"
          value="{{old('password2')}}" 
          placeholder="Confirmar Contraseña">
          @error('password')<div class="alert alert-danger">{{ $message }}</div>@enderror
        </div>

        <div class="mb-3">     
          <button type="submit" class="btn btn-primary mb-3">Crear usuario</button>
        </div>
    </form>
</div>
@endsection


Se crea la función create en el Controlador Usuarios.php:
public function create()    
    {   //MUESTRA FORMULARIO VACIO
        return view('usuarios.create');
    }

Que lo único que hace es mostrar la vista.

Se crea la ruta en web.php
Route::get('/usuarios', [Usuarios::class, 'create']);


y la ruta para el post:
Route::post('/usuarios', [Usuarios::class, 'store']);


Se crea la función store en el Controlador Usuarios.php:
    public function store(Request $request)
    {   //RECIBE EL POST DEL CREATE
        //dd($request);
        $request->validate([
            'nombre'        => 'required',
            'email'         => 'required',
            'password'      => 'required',
            'password2'     => 'required'
        ]);


        dd($request);



    }

Incluyendo las reglas de validación.

Y para cambiar los mensajes de errores de validación a español: github.com/Laraveles/spanish


 
Adjuntos:
Última Edición: 2 años 2 meses antes por luispindola.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Tiempo de carga de la página: 0.093 segundos