LoginSignup
1
0

More than 3 years have passed since last update.

【Laravel】EloquentORMで任意のカラム(要素)にセットした際に自動的に加工&セットする。(ミューテタ)

Last updated at Posted at 2020-06-04

メモとして残します。

LaravelのEloquentORMを用いてデータの取得、保存をすると思います。
今回は保存する際に任意のカラムをセットしたら、その際に自動的に値の加工してもらうようにプログラムします。(=ミューテタの定義)

■やり方

任意のカラム(要素)にミューテタを仕込みたいモデルに下記の例のようにメソッドを追記。

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Hoge extends Model
{
    public function setカラム名Attribute($value)
    {
        //$valueにセットしたときの値が入っている。
        $this->attributes['カラム名'] = $value ?? 'hogehoge'; 
    }
}

上記の例では要素にセットされた値がNullの場合は、hogehogeという文字列をセットしました。

ミューテタを定義する利点としては、
モデル呼び出し元で同じような処理を記述する必要がなくなります。
どんな場合も共通して加工してセットしたいという場合に役に立ちます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0