データベースの操作のまとめ(パート1)

HTTPメソッドのまとめ

データベースの操作をするうえで、HTTPメソッドを理解することは重要です。以下にここまでで学んだメソッドをまとめます。

メソッド名説明
Getサーバーからデータを取得するために使用します。
クライアントからサーバー側の状態やデータを変更しません。
Postサーバーにデータを送信してデータを作成するために使用します。
Putサーバーにデータを送信してデータを更新するために使用します。
データのすべてを変更する際に使用します。
Patchサーバーにデータを送信してデータを更新するために使用します。
データの一部を変更する際に使用します。
Deleteサーバーのデータを削除するために使用します。

Laravelによるデータベースの操作

次に、Laravelによるデータ操作の方法について以下にまとめます。

操作名方法1方法2
取得モデルのallメソッドを使用
新規作成モデルのcreateメソッドを使用モデルのプロパティに値を新規登録し、モデルのsaveメソッドを使用
更新モデルのupdateメソッドを使用モデルのプロパティに値を更新し、モデルのsaveメソッドを使用
削除モデルのdestroyメソッドを使用モデルのdeleteメソッドを使用

以上のように、新規登録、更新、削除には二つの方法があります。一つ目はモデルの静的メソッドを使用する方法です。この方法は複数のデータの処理を同時に行うことができます。二つ目はモデルのインスタンスメソッドを使用する方法です。この方法は複数のデータの処理はできませんが、実行時にイベントが発生します。

ほかにも細かな違いがありますが、この二つのうちどちらかを使用することになると思います。

新しくデータベースを操作しよう

今までは、itemsテーブルを使用し、データベースの操作の基礎を学びました。ここでは、まとめとして新たに、booksテーブルを作成し、ルーティングやコントローラ、モデル、ビューの定義を行いましょう。

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

まず、モデルとマイグレーションファイルを作成します。以下のコマンドで、モデルとマイグレーションファイルを同時に作成できます。

php artisan make:model Book -m

次にbooksテーブルを以下のように定義します。

カラム名内容
title本のタイトル
author本の著者
price本の値段

以上から、以下のようにマイグレーションファイルを定義します。

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('books', function (Blueprint $table) {
            $table->id();
            $table->string("title");
            $table->string("author");
            $table->integer("price");
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('books');
    }
};

以下のコマンドでマイグレーションを実行します。

php artisan migrate

次に、MySQLにログインし、booksテーブルの概要を確認します。コマンドは以下の通りです。

describe books;

以下のように表示されれば成功です。

+------------+-----------------+------+-----+---------+----------------+
| Field      | Type            | Null | Key | Default | Extra          |
+------------+-----------------+------+-----+---------+----------------+
| id         | bigint unsigned | NO   | PRI | NULL    | auto_increment |
| title      | varchar(255)    | NO   |     | NULL    |                |
| author     | varchar(255)    | NO   |     | NULL    |                |
| price      | int             | NO   |     | NULL    |                |
| created_at | timestamp       | YES  |     | NULL    |                |
| updated_at | timestamp       | YES  |     | NULL    |                |
+------------+-----------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

以上で、データベースへのひな型の作成は終了です。次回以降では、モデル、コントローラー、ビュー、ルーティングを解説していきます。

コメントを残す

CAPTCHA