¡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
Laravel Sanctum: Corrigiendo un “error no autenticado”
Corrigiendo un “error no autenticado” al usar Laravel Sanctum para SPA
Manejo de errores en Node.js
Manejo de errores en Node.js
Ethereum: Cómo generar una nueva dirección
Cómo generar una nueva dirección de Ethereum en JavaScript o Typescript