PHP
Laravel

Laravelのフラグ設定について

よくある実装で例えばユーザの権限を「有効」「無効」を「Y」と「N」という

フラグデータで扱いViewで出力するときにそれぞれ「有効」、「無効」という感じで出力したいときってあるかなと思います。


Model

public function userStatus($flag) {

return $flag == 'Y' ? '有効' : '無効';
}

こんな感じでモデル層に実装したりするのを見かけたりするのですが

別にこれでも悪くはないですが、あくまでモデル層はDB接続やロジック層を重点的に書くところで

出力に関わる処理を書くのはベストではないかと思います。

モデル以外に書くとすれば人によって様々ですが

ここでいくつか候補を挙げていきます


config


config/users/status.php


return [
"label" => ["Y" => "有効", "N" => "無効"],
]

と設定ファイルに定義したら


index.blade.php

config("users.status.label.{$user.active_flag}", "未定義")


という形で呼び出すことができます。


言語データ

Laravelのローカリゼーション機能で定義する場合


resouce/lang/ja/user.php

return [

"active_flag" => ["Y" => "有効", "N" => "無効"],
]


index.blade.php

__("user.active_flag.{$user.active_flag}")



まとめ

いくつか例を挙げましたが、好みにもよるかなと思います。

他にいい方法あればご教示いただければと思います。