よくある実装で例えばユーザの権限を「有効」「無効」を「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}")
##プルダウン
あとはプルダウンの値を管理したいときにも役に立つます。
config/japan.php
return [
"city" => [0 => "都市を選択してください", 1 => "東京", 2 => "大阪", 3 => "名古屋",4 => "福岡"],
]
とプルダウンの値を定義して
index.blade.php
<select name="city" >
@foreach(config('japan.city') as $key => $value)
<option value="{{ $key }}" @if(config("japan.city.{$japan->city}")) selected @endif>
{{ $value }}
</option>
@endforeach
</select>
##まとめ
いくつか例を挙げましたが、好みにもよるかなと思います。
他にいい方法あればご教示いただければと思います。