
¡Nueva forma de definir accesores y mutadores en Laravel!
Como sabe, hay una manera de definir accesores y mutadores en laravel como se muestra a continuación.
Por ejemplo, si estamos en el modelo de usuario (App\Models\User):
Para Getter:
public function getFirstNameAttribute($value)
{
return ucfirst($value);
}
Para Setter:
public function setFirstNameAttribute($value)
{
$this->attribute[‘first_name’] = strtolower($value);
}
Hay una nueva forma de lograr este escenario, pero debo decir que Taylor Otwell realmente lo mencionó y es bastante útil y agradable.
Puede definir tanto setter como getter en un solo método como se muestra a continuación:
public function firtName() :Attribute
{
return new Attribute (
get: fn($value, $attributes) => $attribute[‘first_name’],
set: fn($value) => ‘first_name’ => $value
);
}
Y eso lo haría como otra forma de definir accesores y mutadores en una función de atributo. Si no desea escribir ninguno de estos, simplemente puede pasar un valor nulo para obtener/establecer.
Veamos dos ejemplos más para que el modelo de usuario lo resuelva:
public function fullName() :Attribute { return new Attribute( get: fn($value, $attributes) => $attributes[‘first_name’] . ' ' . $attributes[‘last_name’], set: function($value) { [$firstName, $lastName] = explode(' ', $value); return [ ‘first_name’ => $firstName, ‘last_name’ => $lastName ]; } ); } public function password() :Attribute { return new Attribute( get: null, set: fn($value) => bcrypt($value) ); }
Eso es todo… ¿alguna pregunta?
Recent Post
Baja latencia con Amazon CloudFront
Lograr una baja latencia con Amazon CloudFront
alojamiento para aplicaciones Node.js
Dónde alojar una aplicación Node.js
Google Tag Manager: Qué es, para qué sirve y cómo usarlo (5 mins)
Google Tag Manager: Guía de inicio




