0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravelのアクセサ(Accessor)について

Last updated at Posted at 2024-02-17

前提

  • Laravelを最近はじめたばかりのエンジニアの卵です。
  • 生暖かい目で見守ってください。
  • また間違った情報があればご指摘いただけると泣いて喜びます。

アクセサ(Accessor)ってなに

  • アクセサは、ある属性(プロパティ)の値を取得する際に、その値を変換して返す方法です。

使えそうな場面

  1. 「first_name」と「last_name」苗字と名前を別カラムで管理しているけど、表示するときはデータ取得する時にはそれをくっつけた「full_name」として取得したい!
  2. 金額を数値だけで取っているけど、「¥10,000-」みたいな形で取得したい!
  3. 頭文字だけ大文字にしたい!
    →こんなときに便利です!!:v_tone1:

使い方

1. モデルに記載していきます!

  • フルネームを取得する例 (例:「山田 太郎」)

    User.php
    protected $appends = ['full_name']; # モデルのインスタンスがJSON形式に変換される際に、「full_name」の結果が新しい属性として追加する場合にいれる!
    
    public function getFullNameAttribute()
    {
        return $this->last_name . ' ' . $this->first_name;
    }
    

2. 実際呼び出してみる!

  • アクセサ名の「getFullNameAttribute」部分の「get」と「Attribute」をなくした「FullName」→「full_name」スネークケースで記述することで呼び出せます!
    • Tinkerで検証!

      Tinker
      php artisan tinker
      
      > $user = User::find(1);                                       
      echo $user->full_name;
      
      結果
      吉本 亮介
      > 
      

      表示された:v_tone1:

3.さいごに

  • Laravelには便利なものがたくさん集まっていて毎日楽しいです。
  • 記載情報に不備などがあればご指摘いただけますと幸いです。
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?