データベースでstatusフィールドが0:無効、1:有効のように数値で持っている場合、Bladeテンプレート側でどうやって文字列表示させるのが効率が良いのか考えました。
config以下にファイルを作成し、設定する方法があります。
config/const.php
<?php return [ 'statues' => [ 0 => '無効', 1 => '有効', ], ];
Eloquent(エロクエント)とはデータベースとモデルを紐付ける機能です。
accessors(アクセサ)を利用すれば値の取得時に自動的に呼び出されます。
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; static $statuses = [ 0 => '無効', 1 => '有効', ]; class User extends Model { /** * ユーザーの状態を取得 * * @param integer $value * @return string */ public function getStatusAttribute($value) { return self::$statuses($value); } }
Bladeテンプレート側では何も考えずにechoするだけです。
{{ $user->status }}
逆にsetしたい場合はmutators(ミューテタ)を使用します。