0
0

More than 1 year has passed since last update.

【Laravel】AccessorでEloquent属性値を変換して処理を共通化する

Last updated at Posted at 2022-02-06

概要

Eloquent Model から取得したIDをハッシュ化する処理をAccessorを利用して行ってみましたので紹介します

アクセサは、Eloquentの属性値にアクセスしたときに、その値を変換するものです。アクセサを定義するには、モデルにget{Attribute}Attributeメソッドを作成します。

Accessor の定義

  • {カラムのアッパーキャメルケース}Attribute の形式でメソッドを命名する
    • 今回はhash_idにハッシュ化したIDを格納しますのでHashIdとしています
User.php
/**
 * Attributeにhash_id属性を生成するアクセサ
  * @return string
*/
public function getHashIdAttribute()
 {
   return urlencode(Hash::make($this->id));
 }
$user = User::query()->findOrFail(1);

// Accessorで変換されたカラム名にアクセスするとハッシュ化した値を取得できます
dd(user->hash_id);

さいごに

今回はAccessorの仕組みについて紹介しました。
いいねしていただけると記事執筆の励みになりますので、参考になったと思った方は是非よろしくお願いします!

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