Laravel 学習記録 #004 Modelを学ぶ
LaravelのModelについて学習したものをまとめてます。
※Modelがどんなものかの概要と作成までの記事です。
Modelとは?
アプリケーション内でDBテーブルとの対話を抽象化するためのクラス
1つのクラスが1つのテーブルに紐づく
Eloquent ORMは、LaravelでModelとDBテーブルやりとりを操作する
DBクエリビルダはModelを介さずにクエリを実行できる
->レポジトリクラスなどに分けて記述するとよさそう。カスタムコレクション、アクセサ、ミューテータなど独自に拡張できる機能がある
Modelで取得されたデータはEloquentコレクションオブジェクトというものになる
どう使うの?
Modelクラスを作るだけ。
命名規則を守ると勝手にテーブルと繋いでくれます。
作成コマンド
php artisan make:Model モデル名
// -m オプションつけると一緒にマイグレーションファイル作成される
これでモデル名のクラスファイルが作成されます。
基本準備はこれでOK
行いたい操作に合わせて、色々なModelの機能が使えます。
プロパティ
Modelにはさまざまなプロパティがあります。
$fillable:
設定することで、createやupdateメソッドでデータを設定できるようになります。(ホワイトリスト)
protected $fillable = ['name', 'email', 'password'];
$guarded:
設定することで、createやupdateメソッドでデータを設定できないようになります。(ブラックリスト)
protected $guarded = ['id', 'admin'];
ユーザーからの意図しない入力で変更をしたく無い場合は$guardedに登録していく。
$hidden:
設定することで、不要な項目をデータ変換時(配列やJSONに変換するとき)に非表示にしてくれます。
protected $hidden = ['password'];
$casts:
設定することで、DBからデータを取得する段階で、モデルの属性のデータ型を指定できます。
protected $casts = [
'is_admin' => 'boolean',
'settings' => 'array',
'visit_count' => 'integer',
];
こんな感じでテーブル操作に関連したデータを扱えるのがModelです。
他の機能は別記事にまとめます。
この記事が気に入ったらサポートをしてみませんか?