Zoeken…


Invoering

Met accessors en mutators kunt u welsprekende kenmerkwaarden opmaken wanneer u deze ophaalt of instelt op modelinstanties. Misschien wilt u bijvoorbeeld de Laravel-codeerder gebruiken om een waarde te coderen terwijl deze in de database is opgeslagen en vervolgens het kenmerk automatisch te decoderen wanneer u er toegang toe hebt op een welsprekend model. Naast aangepaste accessors en mutators, kan Eloquent ook automatisch datumvelden naar Carbon-instanties casten of zelfs tekstvelden naar JSON casten.

Syntaxis

  • stel {ATTRIBUTE} Attribuut ($ attribuut) // in geval van een kameel in

Een accessors definiëren

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

Accessor krijgen:

Zoals u ziet, wordt de oorspronkelijke waarde van de kolom doorgegeven aan de accessor, zodat u de waarde kunt manipuleren en retourneren. Om toegang te krijgen tot de waarde van de accessor, kunt u eenvoudig toegang krijgen tot het kenmerk first_name op een modelinstantie:

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

Een mutator definiëren

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

Bovenstaande code doet "bcrypting" elke keer dat de wachtwoordeigenschap is ingesteld.

$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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow