Buscar..
Introducción
Los accesores y los mutadores le permiten dar formato a los valores de atributo Eloquent cuando los recupera o configura en instancias de modelo. Por ejemplo, es posible que desee utilizar el cifrado Laravel para cifrar un valor mientras está almacenado en la base de datos, y luego descifrar automáticamente el atributo cuando accede a él en un modelo de Eloquent. Además de los accesores y mutadores personalizados, Eloquent también puede convertir automáticamente campos de fecha en instancias de Carbon o incluso campos de texto de conversión en JSON.
Sintaxis
- establecer {ATTRIBUTE} Atributo ($ atributo) // en caso de camello
Definiendo un accessors
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* Get the user's first name.
*
* @param string $value
* @return string
*/
public function getFirstNameAttribute($value)
{
return ucfirst($value);
}
}
Obteniendo Accessor:
Como puede ver, el valor original de la columna se pasa al descriptor de acceso, lo que le permite manipular y devolver el valor. Para acceder al valor del elemento de acceso, simplemente puede acceder al atributo first_name
en una instancia del modelo:
$user = App\User::find(1);
$firstName = $user->first_name;
Definiendo un mutador
class User extends Model
{
public function setPasswordAttribute($password)
{
$this->attributes['password'] = bcrypt($password);
}
...
}
El código anterior hace "bcrypting" cada vez que se establece la propiedad de contraseña.
$user = $users->first();
$user->password = 'white rabbit'; //laravel calls mutator on background
$user->save(); // password is bcrypted and one does not need to call bcrypt('white rabbit')
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow