¡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
AWS Rekognition: Reconocimiento de imagen / video
Reconocimiento de imagen / video AI con Node.js y AWS Rekognition
Uber: ¡CASO DE ÉXITO! (Marketing Digital)
Uber: ¡CASO DE ÉXITO! (Marketing Digital)
Sequelize ORM y Node.js: Historial de ejecución de datos
Node.js y Sequelize ORM: mantienen el historial de ejecución de datos de inicialización