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