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

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

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

Únete a nuestra comunidad en Discord y comparte con los usuarios y autores de Styde, 100% gratis.

Únete hoy

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)