LoginSignup
30
14

More than 3 years have passed since last update.

【Laravel】get〜Attributeメソッド

Posted at

はじめに

今回はLaravelのget〜Attributeメソッドを利用して、欲しい値を加工する方法をまとめたいと思います。

アクセサについて

アクセサを定義するには、アクセスしたいカラム名が「studlyケース(Upper Camel Case)」でFooの場合、getFooAttributeメソッドをモデルに作成します。以下の例では、first_name属性のアクセサを定義しています。first_name属性の値にアクセスが起きると、Eloquentは自動的にこのアクセサを呼び出します。

参考:Eloquent:ミューテタ 8.x Laravel

get〜Attributeメソッドの実装例


<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * ユーザーの氏名を取得
     *
     * @param  string  $value
     * @return string
     */
    public function getFullNameAttribute($value)
    {
        return "{$this->first_name} {$this->last_name}";
    }
}

モデルにこのように定義するとこの値を使用したいコントローラー層やサービス層などで、例えば$this->full_nameのように実装すると値を取得することができます。

おわりに

いかがでしたでしょうか。
get〜Attributeメソッドはとても便利なので是非活用してみてください。

30
14
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
30
14