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