En esta lección vamos a comenzar a trabajar en el feature para editar usuarios, empezando por crear el formulario y obtener los registros desde la base de datos. Por supuesto nos guiaremos mediante el uso de pruebas automatizadas y además aprenderemos a usar algunos métodos que no hemos visto anteriormente, como assertViewIs
.
Repositorio
Ver el código de esta lección en GitHub
Notas
Uso de assertViewIs y assertViewHas
Con assertViewIs
podemos comprobar que la vista retornada desde el controlador es la que esperamos. En este caso esperamos que la vista sea users.edit
:
$this->get("/usuarios/{$user->id}/editar") ->assertStatus(200) ->assertViewIs('users.edit');
Con assertViewHas
podemos comprobar que la vista contiene la variable pasada como argumento:
->assertViewHas('user');
Este método también acepta un valor (que puede ser una función anónima) como segundo argumento, en caso de que necesitemos o queramos ser más explícitos en la comparación:
->assertViewHas('user', function ($viewUser) use ($user) { return $viewUser->id === $user->id; })
Mostrar los datos del usuario en el formulario
Para mostrar los datos del usuario en el formulario de edición pasamos como segundo argumento a la función old()
los datos que estamos retornando desde la base de datos:
<input type="text" name="name" id="name" placeholder="Pedro Perez" value="{{ old('name', $user->name) }}">
En este caso old()
intentará cargar los datos referentes al campo name
que se encuentren en la sesión y si no los consigue cargará el valor de $user->name
.
Actividad
Acomoda y agrega más estilos al formulario y a los mensajes de error.
Material relacionado
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.
Lección anterior Uso de múltiples reglas de validación en Laravel Lección siguiente Actualización de Usuarios con Laravel (TDD)