¿Qué son exactamente los Accessor y Mutators?

Laravel nos proporciona métodos que nos permiten dar un formato automáticamente a los valores de un atributo en el modelo cuando los recuperamos o los queremos registrar en nuestra base de datos, a estos se les conoce como Accessor y Mutators. Así mismo teniendo en cuenta que los métodos deben de seguir el formato CamelCase (HolaMundo), a pesar que la mayoría de los casos definimos las columnas de nuestras tablas Snake-Case (Hola_Mundo).

Accessors: Son los métodos que dan formato al valor que se recupera.

Mutators: Son los métodos que que dan formato al valor antes de ser guardados.

Ejemplo básico:

Usando el archivo de migración que trae por defecto para el modelo de User.

Configuramos nuestro archivo .env con las credenciales de autentificación y nombre de nuestra base de datos.

Ejecutamos el comando

Pasamos a crear nuestro primero registro:

Por ejemplo si revisamos en nuestra base de datos, se registro el usuario con el nombre y apellido en minúsculas y la contraseña en texto, así que para este ejemplo vamos recuperar la información de nuestra base de datos donde necesitamos que la primera letra del nombre y el apellido este en mayúsculas, para esto nos ayudaran los Accessors.

ACCESSORS getAttribute

Los Accessors los definimos dentro del modelo User

Muy bien, ¿fácil verdad?, solo definimos el método getAttribute() al campo de la base de datos, que en nuestro caso fue first_name donde el resultado fue getFirstNameAttribute().

ucfirst es una función de PHP que devuelve una cadena con el primer carácter en mayúsculas, si el carácter es alfabético.

MUTATORS setAttribute()

Al igual que los accessors, los mutators los definimos dentro de nuestro modelo User, para este caso necesitamos que la contraseña no la guarde encriptada en nuestra base de datos.

Ahora cada ves que creemos un nuevo usuario la contraseña se almacenara de forma encriptada y al momento de recuperar los valores de la base de datos el campo nombre y apellido, siempre nos devolverá con la primera letra en mayúscula.

Al momento que estemos trabajando con aplicaciones grandes y en equipo, ambos métodos nos sera de mucha ayuda para ahorrarnos tiempo, tener un código limpio, flexible y legible.

 

Comparte este artículo

Entra en la discusión y deja tu comentario

Veces