概要
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
の仕組みについて紹介しました。
いいねしていただけると記事執筆の励みになりますので、参考になったと思った方は是非よろしくお願いします!