- バックアップ一覧
- ソース を表示
- バックアップ を表示
- Laravel アクセサーとミューテター は削除されています。
- 1 (2018-06-12 (火) 05:57:57)
- 追加された行はこの色です。
- 削除された行はこの色です。
[[Laravelめも]]
データベースでstatusフィールドが0:無効、1:有効のように数値で持っている場合、Bladeテンプレート側でどうやって文字列表示させるのが効率が良いのか考えました。
*configに書く [#k85d3326]
config以下にファイルを作成し、設定する方法があります。
config/const.php
<?php
return [
'statues' => [
0 => '無効',
1 => '有効',
],
];
*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