![Accesores y mutadores](https://cdn.diegooo.com/media/20220124155330/ricardo-cruz-OkOx83eqD08-unsplash-scaled-e1643068507992.jpg)
¡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
TypeScriptFunction: Centralice sus errores
Centralice sus errores de AWS Lambda
“importación”: Cómo usar la declaración en Node.js
Cómo usar la declaración de “importación” en Node.js
Rutas con Express JS para su aplicación
Definición de rutas con Express JS para su aplicación