Recherche…


Introduction

Les accesseurs et les mutateurs vous permettent de formater des valeurs d'attribut Eloquent lorsque vous les récupérez ou les définissez sur des instances de modèle. Par exemple, vous pouvez utiliser le crypteur Laravel pour crypter une valeur stockée dans la base de données, puis décrypter automatiquement l'attribut lorsque vous y accédez sur un modèle Eloquent. En plus des accesseurs et des mutateurs personnalisés, Eloquent peut également convertir automatiquement des champs de date en instances Carbon ou même convertir des champs de texte en JSON.

Syntaxe

  • définir l'attribut {ATTRIBUTE} (attribut $) // dans le cas camel

Définir un accesseur

<?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);
    }
}

Obtenir un accessoire:

Comme vous pouvez le constater, la valeur d'origine de la colonne est transmise à l'accesseur, ce qui vous permet de manipuler et de renvoyer la valeur. Pour accéder à la valeur de l'accesseur, vous pouvez simplement accéder à l'attribut first_name sur une instance de modèle:

$user = App\User::find(1);
$firstName = $user->first_name;

Définir un mutateur

class User extends Model  
{
    public function setPasswordAttribute($password)
    {
        $this->attributes['password'] = bcrypt($password);
    } 
    ... 
}

Le code ci-dessus fait "bcrypting" à chaque fois que la propriété password est définie.

$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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow