Laravel アクセサとミューテタ
の編集
https://yassu.jp/pukiwiki/index.php?Laravel+%A5%A2%A5%AF%A5%BB%A5%B5%A4%C8%A5%DF%A5%E5%A1%BC%A5%C6%A5%BF
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
[[Laravelめも]] データベースでstatusフィールドを0:無効、1:有効のように数値で持っている場合、Bladeテンプレート側でどうやって文字列表示させるのが効率が良いのか考えました。 *configに書く [#k85d3326] config以下にファイルを作成し、設定する方法があります。 config/const.php <?php return [ 'statuses' => [ 0 => '無効', 1 => '有効', ], ]; Bladeテンプレート側 {{ config('const.statuses')[$user->status] }} コントローラ側からBlabeに渡してやる方法もありです。 return view('home', ['status' => config('const.statuses')[$user->status]]); configにまとめて設定できるのは良さげですが、なんだかスッキリしません。 *Eloquentのアクセサを使う [#f6b6f032] 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(ミューテタ)を使用します。 https://readouble.com/laravel/5.5/ja/eloquent-mutators.html
タイムスタンプを変更しない
[[Laravelめも]] データベースでstatusフィールドを0:無効、1:有効のように数値で持っている場合、Bladeテンプレート側でどうやって文字列表示させるのが効率が良いのか考えました。 *configに書く [#k85d3326] config以下にファイルを作成し、設定する方法があります。 config/const.php <?php return [ 'statuses' => [ 0 => '無効', 1 => '有効', ], ]; Bladeテンプレート側 {{ config('const.statuses')[$user->status] }} コントローラ側からBlabeに渡してやる方法もありです。 return view('home', ['status' => config('const.statuses')[$user->status]]); configにまとめて設定できるのは良さげですが、なんだかスッキリしません。 *Eloquentのアクセサを使う [#f6b6f032] 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(ミューテタ)を使用します。 https://readouble.com/laravel/5.5/ja/eloquent-mutators.html
テキスト整形のルールを表示する