Suche…


Einführung

Mithilfe von Accessoren und Mutatoren können Sie Eloquent-Attributwerte formatieren, wenn Sie sie für Modellinstanzen abrufen oder festlegen. Beispielsweise möchten Sie den Laravel-Verschlüsseler verwenden, um einen Wert zu verschlüsseln, während er in der Datenbank gespeichert ist, und das Attribut dann automatisch zu entschlüsseln, wenn Sie auf ein Eloquent-Modell zugreifen. Neben benutzerdefinierten Accessoren und Mutatoren kann Eloquent Datumsfelder automatisch in Carbon-Instanzen oder sogar Textfelder in JSON umwandeln.

Syntax

  • setze {ATTRIBUTE} Attribut ($ -Attribut) // im Kamelfall

Definieren eines 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);
    }
}

Accessor bekommen:

Wie Sie sehen, wird der ursprüngliche Wert der Spalte an den Accessor übergeben, sodass Sie den Wert bearbeiten und zurückgeben können. Um auf den Wert des Accessors zuzugreifen, können Sie einfach auf das first_name Attribut einer Modellinstanz zugreifen:

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

Mutator definieren

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

Mit dem obigen Code wird jedes Mal "verschlüsselt", wenn die Kennworteigenschaft festgelegt wird.

$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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow