見出し画像

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です。
他の機能は別記事にまとめます。

この記事が気に入ったらサポートをしてみませんか?