BackEnd

LaravelでのDB操作の基礎

投稿日:

はじめに

今回の記事では、PHPのフレームワークであるLaravelでのDB操作に関する基礎知識を紹介します。Laravelの基礎知識に関してはこちらをご覧ください。

Eloquent

EloquentはLaravelの標準のORMです。DB上のデータの検索、作成、更新はもちろん、リレーション、論理削除なども簡単に扱うことができます。

それでは、実際にEloquentの使い方を見ていきましょう。

モデルの定義

モデルは artisan make:model コマンドで作成することができます。Bookモデルの作成は以下のようになります。

上記のコマンドを実行すると、 app ディレクトリの直下に Book.php が作成されます。

また、まだマイグレーションファイルを作成していなければ、モデルの作成時にマイグレーションファイルを一緒に作成することができます。マイグレーションに関しては次に説明します。

通常、モデルは app 直下に作成されますが、オートロードするように指定してある場所ならどこに作成してもよいです。例えば、 app/Models 直下に作成したい場合は以下のようにします。

モデルの取得

DBからレコードを1件取得するには find メソッドを使用します。以下のように使用します。

複数のレコードを取得するには all メソッドを使用します。以下のように使用します。

whereなど、条件をつけてレコードを取得したい場合は where メソッドを使用します。以下のように使用します。

whereRaw メソッドを使用すると任意のSQLを実行することができます。以下のように使用します。

モデルの追加

レコードを1件追加するには2種類の方法があります。1つ目はインスタンスを生成してから save メソッドを使用する方法です。以下のように使用します。

2つ目は create メソッドを使用する方法です。この方法では事前にモデルに fillable プロパティで変更を許可するパラメータを列挙しておく必要があります。以下のように指定します。

以下のように使用します。

複数のレコードを一度に追加するには insert メソッドを使用します。注意点としては、insert では先程説明した fillable がきかないので、意図しない値が入る場合があります。以下のように使用します。

モデルの更新

レコードの更新には2種類の方法があります。1つ目はインスタンスを取得してから save メソッドを使用する方法です。以下のように使用します。

2つ目は update メソッドを使用する方法です。この方法では create メソッドと同様に fillable プロパティで変更を許可するパラメータを列挙しておく必要があります。以下のように使用します。

モデルの削除

レコードの削除には destroy メソッドを使用します。以下のように使用します。

クエリスコープ

クエリスコープを定義することで、検索条件を使い回す事ができます。以下のように定義します。

以下のように使用します。

マイグレーション

マイグレーションファイルを作成し、実行することでデータベースを定義します。

それでは、実際にbooksテーブルを定義してみましょう。

マイグレーションファイルの作成

マイグレーションファイルの作成は artisan make:migration コマンドで行います。

上記のコードを実行すると database/migrations ディレクトリの直下に CreateBooksTable.php が作成されます。

作成直後のマイグレーションファイルは、カラムが1つも定義されていないので、 title カラムと price カラムを追加します。以下のようになります。

up メソッドには追加したい定義を記述します。逆に down メソッドには元に戻すための処理を記述します。

マイグレーションの実行

マイグレーションは artisan migrate コマンドで行います。以下のようになります。

上記のコマンドを実行すると、まだ実行されていないすべてのマイグレーションファイルの up メソッドが実行されます。

ロールバック

追加したマイグレーションの定義を戻したい場合には artisan migrate:rollback コマンドを実行します。以下のようになります。

上記のコマンドを実行すると、直前に実行したマイグレーションファイルの down メソッドが実行されます。

初期状態に戻す

これまでに実行したマイグレーションをすべてもとに戻したい場合は artisan migrate:reset コマンドを実行します。以下のようになります。

さいごに

LaravelでのDB操作の基礎として、Eloquentの使い方とマイグレーションのやりかたを紹介しました。

おすすめ書籍

初めてのPHP PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応 動かして学ぶ!Vue.js開発入門 (NEXT ONE) 確かな力が身につくJavaScript「超」入門 (確かな力が身につく「超」入門シリーズ)

blog-page_footer_336




blog-page_footer_336




-BackEnd
-,

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

laravel logo

Laravelで非同期実行する

1 はじめに1.1 動作環境2 準備2.1 デーブルの作成2.2 .envの修正3 ジョブの作成4 ジョブのディスパッチ5 キューワーカーを起動6 より細かな制御6.1 特定のキューにディスパッチする ...

laravel logo

Laravelの開発環境構築

1 はじめに2 開発環境構築2.1 Homestead2.2 Laradock3 Laradockで開発環境構築3.1 Laradockのダウンロード3.2 コンテナの設定ファイルを作成3.3 コンテ ...

crypto

公開鍵暗号の概要、用語と使用例

1 はじめに1.1 前提条件2 暗号化と復号2.1 暗号化とは2.2 復号とは3 暗号化方式3.1 共通鍵暗号3.2 公開鍵暗号4 署名と検証4.1 署名とは4.2 検証とは5 RSA暗号とは5.1 ...

Rust入門してみた (基本構文編)

1 はじめに2 Rustとは?3 Rustの特徴的な基本構文3.1 変数と定数3.2 所有権3.3 所有権の借用3.4 関数3.5 エラーハンドリング3.5.1 回復不能なエラー(panic!)3.5 ...

MySQLでバルクアップデート処理

1 はじめに2 使用するテーブル3 パターン数が少ないシンプルな更新4 パターン数が多い場合4.1 FIELD関数4.2 ELT関数4.3 組み合わせ4.4 パフォーマンス5 さいごに6 おすすめ書籍 ...

フォロー

blog-page_side_responsive

2019年3月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。