サーチ…


前書き

アクセサーとミューテータを使用すると、モデルインスタンスでEloquent属性値を取得または設定するときに、Eloquent属性値を書式設定できます。たとえば、Laravel暗号化ツールを使用して値がデータベースに格納されている間に暗号化し、Eloquentモデルでアクセスするときにその属性を自動的に復号化することができます。カスタムアクセサやミューテータに加えて、Eloquentは自動的に日付フィールドをCarbonインスタンスにキャストしたり、テキストフィールドをJSONにキャストすることもできます。

構文

  • set {ATTRIBUTE}属性($属性)//ラクダの場合

アクセサの定義

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

アクセサリーの入手:

ご覧のように、カラムの元の値がアクセサに渡され、値を操作して返すことができます。アクセサーの値にアクセスするには、モデルインスタンスのfirst_name属性にアクセスします。

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

ミューテータの定義

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

上記のコードは、パスワードプロパティが設定されるたびに「bcrypting」します。

$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
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow