Commit e637b364 by Angello Torres

Video 33

parent 86fab311
...@@ -73,10 +73,14 @@ class UserController extends Controller ...@@ -73,10 +73,14 @@ class UserController extends Controller
*/ */
$data = request()->validate([ $data = request()->validate([
'name' => 'required', 'name' => 'required',
// 'email' => '', 'email' => 'required|email|unique:users,email', // Con | puedes tener más de una regla, o pasando un array ['required', 'email', '...']
// 'password' => '', 'password' => ['required','min:6'],
], [ ], [
'name.required' => 'El campo "Nombre del usuario" es requerido' 'name.required' => 'El campo "Nombre del usuario" es requerido',
'email.required' => 'El campo "Email" es requerido',
'email.unique' => 'Otro usuario stá usando el email, este debe ser único',
'password.required' => 'El campo "Tu password" es requerido',
'password.min' => 'El campo "Tu password" debe tener al menos 6 caracteres',
]); ]);
User::create([ User::create([
...@@ -88,4 +92,29 @@ class UserController extends Controller ...@@ -88,4 +92,29 @@ class UserController extends Controller
return redirect()->route('users.index'); return redirect()->route('users.index');
// return 'Procesando información ...'; // return 'Procesando información ...';
} }
public function edit(User $user)
{
return view('users.edit', ['user' => $user]);
}
public function update(User $user){
$data = request()->validate([
'name' => 'required',
'email' => 'required|email|unique:users,email', // Con | puedes tener más de una regla, o pasando un array ['required', 'email', '...']
'password' => ['required','min:6'],
], [
'name.required' => 'El campo "Nombre del usuario" es requerido',
'email.required' => 'El campo "Email" es requerido',
'email.unique' => 'Otro usuario stá usando el email, este debe ser único',
'password.required' => 'El campo "Tu password" es requerido',
'password.min' => 'El campo "Tu password" debe tener al menos 6 caracteres',
]);
$data['password'] = bcrypt($data['password']);
$user->update($data);
return redirect()->route('user.show', ['user' => $user]);
}
} }
...@@ -5,8 +5,10 @@ ...@@ -5,8 +5,10 @@
@section('content') @section('content')
<h1>Crear usuario</h1> <h1>Crear usuario</h1>
<!-- Saber si se tiene algún error enel formulario --> {{-- Saber si se tiene algún error enel formulario --}}
{{--
@if($errors->any()) @if($errors->any())
<!-- La variable $errors toma TODOS los errores -->
<div class="alert alert-danger"> <div class="alert alert-danger">
<p>Por favor corrige los siguiente errores:</p> <p>Por favor corrige los siguiente errores:</p>
<ul> <ul>
...@@ -16,32 +18,50 @@ ...@@ -16,32 +18,50 @@
</ul> </ul>
</div> </div>
@endif @endif
--}}
<form action="{{route('users.store')}}" method="post"> <form action="{{route('users.store')}}" method="post">
<!-- {{--
Add _token (es un input type="hidden" que envia info que solo nuestro serve sabe) para evitar ataques de tipo CSRF Add _token (es un input type="hidden" que envia info que solo nuestro serve sabe) para evitar ataques de tipo CSRF
<input type="hidden" name="_token" value="F3hukPNtUeW02l3URoLgyM1pd4uQPWazQrSaXQ8h"> <input type="hidden" name="_token" value="F3hukPNtUeW02l3URoLgyM1pd4uQPWazQrSaXQ8h">
--> --}}
{{csrf_field()}} {{csrf_field()}}
<!-- {{--
Para desactivar el csrf_field() se debe ir a /app/Http/kernel.php Para desactivar el csrf_field() se debe ir a /app/Http/kernel.php
Por la línea 36 aprox. \App\Http\Middleware\VerifyCsrfToken::class Por la línea 36 aprox. \App\Http\Middleware\VerifyCsrfToken::class
--> --}}
<div class="form-group"> <div class="form-group">
<label for="name">Nombre del usuario: </label> <label for="name">Nombre del usuario: </label>
<input type="text" class="form-control" name="name" id="name" placeholder="Nombres apellidos" value="{{ old('name') }}"> <input type="text" class="form-control" name="name" id="name" placeholder="Nombres apellidos" value="{{ old('name') }}">
@if($errors->any() && $errors->has('name')) {{-- Toma la variable $errors y mira si tiene un error en la clave 'name'--}}
<div class="alert alert-danger">
<p>{{ $errors->first('name') }}</p>
</div>
@endif
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="email">Email:</label> <label for="email">Email:</label>
<input type="email" class="form-control" name="email" id="email" placeholder="usuario@example.com" value="{{ old('email') }}"> <input type="email" class="form-control" name="email" id="email" placeholder="usuario@example.com" value="{{ old('email') }}">
@if($errors->any() && $errors->has('email')) {{-- Toma la variable $errors y mira si tiene un error en la clave 'name'--}}
<div class="alert alert-danger">
<p>{{ $errors->first('email') }}</p>
</div>
@endif
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="passwords">Tu password</label> <label for="passwords">Tu password</label>
<input type="password" class="form-control" name="password" id="passwords" placeholder="Mayor a 6 caracteres"> <input type="password" class="form-control" name="password" id="passwords" placeholder="Mayor a 6 caracteres">
@if($errors->any() && $errors->has('password')) {{-- Toma la variable $errors y mira si tiene un error en la clave 'name'--}}
<div class="alert alert-danger">
<p>{{ $errors->first('password') }}</p>
</div>
@endif
</div> </div>
<button class="btn btn-primary" type="submit">Crear usuario</button> <button class="btn btn-primary" type="submit">Crear usuario</button>
......
@extends('layout')
@section('title', "Editar usuario")
@section('content')
<h1>Editar usuario</h1>
<form action="{{route('users.update')}}" method="post">
{{ method_field('PUT') }} {{-- Método de laravel, que permite realizar una llamada, por medio del formulario, al
método PUT --}}
{{csrf_field()}}
<div class="form-group">
<label for="name">Nombre del usuario: </label>
<input type="text" class="form-control" name="name" id="name" value="{{ old('name', $user->name) }}">
@if($errors->any() && $errors->has('name'))
<div class="alert alert-danger">
<p>{{ $errors->first('name') }}</p>
</div>
@endif
</div>
<div class="form-group">
<label for="email">Email:</label>
<input type="email" class="form-control" name="email" id="email" value="{{ old('email', $user->email) }}">
@if($errors->any() && $errors->has('email'))
<div class="alert alert-danger">
<p>{{ $errors->first('email') }}</p>
</div>
@endif
</div>
<div class="form-group">
<label for="passwords">Tu password</label>
<input type="password" class="form-control" name="password" id="passwords" placeholder="Mayor a 6 caracteres">
@if($errors->any() && $errors->has('password'))
<div class="alert alert-danger">
<p>{{ $errors->first('password') }}</p>
</div>
@endif
</div>
<button class="btn btn-primary" type="submit">Actualizar usuario</button>
</form>
<p>
<a href="{{ route('users.index') }}">Regresar al listado de usurios</a>
</p>
@endsection
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
con rutas (name), estas estan definidas en routes/web.php con rutas (name), estas estan definidas en routes/web.php
--> -->
<a href="{{ route('users.show', ['id' => $user->id]) }}">Ver detalle</a> <a href="{{ route('users.show', ['id' => $user->id]) }}">Ver detalle</a>
<a href="{{ route('users.edit', ['id' => $user->id]) }}">Actualizar usuario</a>
</li> </li>
@empty @empty
<p>No hay usuarios registrados</p> <p>No hay usuarios registrados</p>
......
@extends('layout') @extends('layout')
@section('title', "Usuario {$user->id}") @section('title', "Detalle usuario {$user->id}")
@section('content') @section('content')
<h1>Usuario #{{ $user->id }}</h1> <h1>Usuario #{{ $user->id }}</h1>
......
...@@ -20,7 +20,7 @@ Route::get('/', function () { ...@@ -20,7 +20,7 @@ Route::get('/', function () {
Route::get('/usuarios', 'UserController@index') Route::get('/usuarios', 'UserController@index')
->name('users.index'); ->name('users.index');
Route::get('/usuarios/detalle/{id}', 'UserController@show') Route::get('/usuarios/{id}', 'UserController@show')
->where('id', '[0-9]+') ->where('id', '[0-9]+')
->name('users.show'); ->name('users.show');
// Rutas par la creación de usuarios - Métodos get / post // Rutas par la creación de usuarios - Métodos get / post
...@@ -36,3 +36,9 @@ Route::post('/usuarios/crear', 'UserController@store') ...@@ -36,3 +36,9 @@ Route::post('/usuarios/crear', 'UserController@store')
->name('users.store'); ->name('users.store');
Route::get('/saludo/{name}/{nickname?}', 'welcomeUserController'); Route::get('/saludo/{name}/{nickname?}', 'welcomeUserController');
// Ruta para la edición del usuario, carga los datos
Route::get('/usuarios/{user}/editar', 'UserController@edit')->name('users.edit');
// Ruta para la actualzación en DB de los datos
Route::put('/usuarios/{user}', 'UserController@update')->name('users.update');
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment