Szukaj…
Wprowadzenie
Akcesoria i mutatory pozwalają sformatować Elokwentne wartości atrybutów podczas ich pobierania lub ustawiania na instancjach modelu. Na przykład możesz użyć szyfratora Laravel, aby zaszyfrować wartość, gdy jest ona przechowywana w bazie danych, a następnie automatycznie odszyfrować atrybut, gdy uzyskasz do niego dostęp w modelu Eloquent. Oprócz niestandardowych akcesoriów i mutatorów Eloquent może także automatycznie rzutować pola daty na instancje Carbon, a nawet rzutować pola tekstowe na JSON.
Składnia
- ustaw {ATTRIBUTE} Atrybut ($ atrybut) // w przypadku wielbłąda
Definiowanie akcesoriów
<?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);
}
}
Uzyskiwanie Accessor:
Jak widać, pierwotna wartość kolumny jest przekazywana do akcesorium, umożliwiając manipulowanie i zwracanie wartości. Aby uzyskać dostęp do wartości akcesora, możesz po prostu uzyskać dostęp do atrybutu first_name
w instancji modelu:
$user = App\User::find(1);
$firstName = $user->first_name;
Definiowanie mutatora
class User extends Model
{
public function setPasswordAttribute($password)
{
$this->attributes['password'] = bcrypt($password);
}
...
}
Powyższy kod „bcrypting” za każdym razem, gdy ustawiana jest właściwość hasł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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow