Commit 86fab311 by Angello Torres

Add formulario para la creación de nuevos clientes

parent df12ea79
......@@ -57,6 +57,35 @@ class UserController extends Controller
public function create()
{
return view('create');
return view('users.create');
}
public function store(){
// recibe los campos del formulario y crea un usuario nuevo
// $data = request()->all(); // recoge todos los campos son validar nada
/*
* Con los datos validados, el método validate() recibe un array asociativo con todas las validaciones,
* se puede mandar otro array con los mensajes que se quieran mostar, donde las llaves son los nombres de los
* campos.nombreValidación (name.required) y los valores son los mensajes
*/
$data = request()->validate([
'name' => 'required',
// 'email' => '',
// 'password' => '',
], [
'name.required' => 'El campo "Nombre del usuario" es requerido'
]);
User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
return redirect()->route('users.index');
// return 'Procesando información ...';
}
}
......@@ -43,24 +43,15 @@
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="{{ route('users.index') }}">Usuarios <span class="sr-only">(current)</span></a>
</li>
</ul>
<!--
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
<a class="nav-link" href="{{ route('users.index') }}">Usuarios Registrados<span class="sr-only">(current)</span></a>
<!--
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
<li class="nav-item active">
<a class="nav-link" href="{{ route('users.store') }}">Nuevo Usuario<span class="sr-only">(current)</span></a>
</li>
-->
</ul>
<!--
<form class="form-inline mt-2 mt-md-0">
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
-->
-->
</ul>
</div>
</nav>
</header>
......@@ -88,7 +79,7 @@
<footer class="footer mt-auto py-3">
<div class="container">
<span class="text-muted">Place sticky footer content here.</span>
<span class="text-muted">Turtorial de laravel</span>
</div>
</footer>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
......
@extends('layout')
@section('title', "Crear usuario")
@section('content')
<h1>Crear usuario</h1>
<!-- Saber si se tiene algún error enel formulario -->
@if($errors->any())
<div class="alert alert-danger">
<p>Por favor corrige los siguiente errores:</p>
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</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') }}">
</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') }}">
</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">
</div>
<button class="btn btn-primary" type="submit">Crear usuario</button>
</form>
<p>
<a href="{{ route('users.index') }}">Regresar al listado de usurios</a>
</p>
@endsection
......@@ -23,8 +23,16 @@ Route::get('/usuarios', 'UserController@index')
Route::get('/usuarios/detalle/{id}', 'UserController@show')
->where('id', '[0-9]+')
->name('users.show');
// Rutas par la creación de usuarios - Métodos get / post
/*
* get -> Solicitar y obtener información
* post -> Enviar y procesar información
*
*/
Route::get('/usuarios/nuevo', 'UserController@create')
->name('users.create');
Route::post('/usuarios/crear', 'UserController@store')
->name('users.store');
Route::get('/saludo/{name}/{nickname?}', 'welcomeUserController');
......@@ -6,27 +6,63 @@ use Tests\TestCase;
class pruebaTest extends TestCase
{
/** @test */
// /** @test */
/*
function usuariosTest()
{
$this->get('/usuarios')
->assertStatus(200)
->assertSee('Listado de usuarios');
}
*/
/** @test */
// /** @test */
/*
function detalleUsuarioTest()
{
$this->get('/usuarios/52')
->assertStatus(200)
->assertSee('Mostrado detalle del usuario: 5');
}
*/
/** @test */
// /** @test */
/*
public function nuevoUsuarioTest()
{
$this->get('/usuarios/nuevo')
->assertStatus(200)
->assertSee('Crear nuevo usuario');
}
*/
/** @test */
function it_create_new_user(){
$this->post('/usuarios/', [
'name' => 'Duilio',
'email' => 'duilio@styde.net',
'password' => '123456',
]);// ->assertSee('Procesando información ...');
$this->assertDatabaseHas('users', [
'name' => 'Duilio Palacios',
'email' => 'duilio@sryde.net',
]);
}
/** @test */
function the_name_is_required(){
// $this->withoutExceptionHandling();
$this->post('usuarios', [
'email' => 'duilio@styde.net',
'password' => '123456',
]);//->assertRedirect('usuarios/nuevo')
//->assertSessionHasErrors(['name']);
$this->assertDatabaseMissing('users', [
'email'=> 'duilio@styde.net',
]);
}
}
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