Commit e637b364 by Angello Torres

Video 33

parent 86fab311
......@@ -73,10 +73,14 @@ class UserController extends Controller
*/
$data = request()->validate([
'name' => 'required',
// 'email' => '',
// 'password' => '',
'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'
'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([
......@@ -88,4 +92,29 @@ class UserController extends Controller
return redirect()->route('users.index');
// 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 @@
@section('content')
<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())
<!-- La variable $errors toma TODOS los errores -->
<div class="alert alert-danger">
<p>Por favor corrige los siguiente errores:</p>
<ul>
......@@ -16,32 +18,50 @@
</ul>
</div>
@endif
--}}
<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
<input type="hidden" name="_token" value="F3hukPNtUeW02l3URoLgyM1pd4uQPWazQrSaXQ8h">
-->
--}}
{{csrf_field()}}
<!--
{{--
Para desactivar el csrf_field() se debe ir a /app/Http/kernel.php
Por la línea 36 aprox. \App\Http\Middleware\VerifyCsrfToken::class
-->
--}}
<div class="form-group">
<label for="name">Nombre del usuario: </label>
<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 class="form-group">
<label for="email">Email:</label>
<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 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')) {{-- 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>
<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 @@
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.edit', ['id' => $user->id]) }}">Actualizar usuario</a>
</li>
@empty
<p>No hay usuarios registrados</p>
......
@extends('layout')
@section('title', "Usuario {$user->id}")
@section('title', "Detalle usuario {$user->id}")
@section('content')
<h1>Usuario #{{ $user->id }}</h1>
......
......@@ -20,7 +20,7 @@ Route::get('/', function () {
Route::get('/usuarios', 'UserController@index')
->name('users.index');
Route::get('/usuarios/detalle/{id}', 'UserController@show')
Route::get('/usuarios/{id}', 'UserController@show')
->where('id', '[0-9]+')
->name('users.show');
// Rutas par la creación de usuarios - Métodos get / post
......@@ -36,3 +36,9 @@ Route::post('/usuarios/crear', 'UserController@store')
->name('users.store');
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