
¡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
Bibliotecas de JavaScript que debe conocer
6 bibliotecas de JavaScript que debe conocer
Sesiones compartidas de Laravel entre dominios
Sesiones compartidas de Laravel entre dominios
Liderazgo: 7 estrategias generadoras de confianza
7 estrategias de liderazgo que generan confianza en su equipo remoto.




