Let's start from here

データベースとの連携(4)elequent

Laravelでは、データベースをPHPのプログラムとしてより直感敵な操作を行うためのORMがある。PHPのクラスを操作しているような感覚でデータベースの操作ができるのでSQLに慣れていない方でも容易にDB操作をできると言われているが、SQLの知識は必須である。
データベースを操作する際はデータベースその物やSQLの知識は必須なので別途学習しておきましょう。

モデルの作成

LaravelでElequentを使う際は、Modelクラスの作成が必要です。
DBのテーブルアクセスは、Modelクラスを介したアクセスになるからです。
モデルの作成にもコマンドが用意されている。
php artisan make:model モデル名

ここでも「members」テーブルに対応するメンバースモデルを作成します。

Laravelのver.8以降では、app以下のModelディレクトリ内にmemberモデルが作成されます。
Laravelでは、テーブル名が複数形でモデル名は単数形で作成するとテーブルとモデルが自動で紐づけされます。
この関係以外は自分で紐づけしましょう。
その他以下の紐づけやルールがあります。

テーブルとの紐づけ

primary key の紐づけ

(項目名が「id」の場合は自動で主キーに紐づけられる)

primary key 自動インクリメント属性ではない場合

primary key 整数ではない場合

モデルとタイムスタンプの紐づけが不要の場合

データの登録・更新の対象となる項目(フィールド)はモデルで明示しておく必要がある(これをしないとエラーとなりデータは登録・更新できない)。

テーブルにアクセスする場合はモデル経由でもアクセスなので作成したモデルを読み込む。

データベースの準備

「データベースの連携(1)」で使用したMembersテーブルを使います。
まだ作成出来てない場合は、以下のスキーマ―でmigrateを実行してください。

レコードの新規登録(insert)

新規挿入のクエリを記述する。

新規作成は以下の手順で行います。
①モデルインスタンスの作成

②インスタンスに登録する値の設定

③インスタンスを保存する

以下の方法でも新規登録できます。

レコードの取得(select)

テーブルから全権取得

テーブルから主キーのIDを引数に1件取得

条件を指定して取得(複数件数)

レコードの更新(update)

更新の場合は、対象のインスタンスを抽出し、インスタンスの値を更新します。

指定したID番号のレコードの年齢が更新されます。

レコードの削除(delete)

削除の場合も、更新と同様に対象のインスタンスを抽出して削除します。

指定したID番号のレコードが削除されます。