Eloquent Laravel

Eloquent agregar atributos custom a resultados de un modelo

Junio 20, 2018

En Laravel muchas veces necesitamos generar en nuestros modelos de Eloquent campos personaliados como por ejemplo el caso de el nombre completo de un usuario de el sistema, por ejemplo, pordemos tener el caso de tener dentro de la tabla users dos columnas name y lastname, siendo en español, nombre y apellido, comunmente dentro del sistema en este caso necesitaremos mostrar el nombre completo de el usuario y para ello tendriamos que anidar 2 campos correspondientes a estas dos columnas, vamos a simplificar el proceso, creando un atributo personalizado dentro de nuestro modelo el cual llamaremos fullname en donde concatenaremos ambos campos name y lastname (nombre y apellido) con tal que si necesitamos mostrar en el sistema el nombre completo de el usuario simplemente utilizaríamos fullname en vez de estar concatenando en la vista, éste campo personalizado lo crearemos utilizando Getters Attribute dejando en nuestro modelo User la siguiente función

 

public function getFullNameAttribute()
{
return $this->name().’ ‘.$this->lastname;
}

 

De esta manera podremos acceder a el  atributo full_name de la siguiente manera, primero obtenemos un usuario en este ejemplo el primer registro

$user = User::first();

 

Posteriormente si queremos acceder a nuestro atributo personalizado debemos llamarlo

$user->full_name;

 

Con esto todo bien, el problema radica en la situación donde por ejemplo queremos en una api retornar directamente con json la colección contenida en $user

 

return response()->json($user);

 

En este caso la colección NO contendrá el atributo personalizado full_name por defecto, para indicarle al modelo que además retorne nuestro(s) atributos personalizados debemos utilizar el array $appends en nuestro modelo de la siguiente manera:

 

protected $appends = [‘full_name’];

 

Ahora si el modelo retornará junto a nuestros otros atributos nuestro atributo personalizado full_name 😀

Comentarios

comentarios

Related Articles

Read previous post:
Postman Ajax headers request
Simular una peticion AJAX en Postman

Hola!, mientras desarrollamos nuestras aplicaciones web o desarrollo de API's es muy común el uso de Postman como herramienta indispensable...

Close