Laravelでいいね!のデータ管理用のマイグレーションファイルとモデル作成のメモ。
マイグレーションファイルとモデルの作成
BlogLikeモデルとblog_likesテーブル作成のためのマイグレーションファイルを同時に作成します。
% sail artisan make:model BlogLike -m INFO Model [app/Models/BlogLike.php] created successfully. INFO Migration [database/migrations/2023_10_30_155302_create_blog_likes_table.php] created successfully.
マイグレーションファイルのupメソッド編集
作成したマイグレーションファイルのupメソッドを編集し必要なカラム情報を追加します。
<?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()
{
Schema::create('blog_likes', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('blog_id');
$table->string('ip');
$table->string('ua')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('blog_likes');
}
};
マイグレーションの実行
マイグレーションファイルの編集後、マイグレーションを実行します。
% sail artisan migrate INFO Running migrations. 2023_10_30_155302_create_blog_likes_table ....... 593ms DONE
-- phpMyAdmin SQL Dump
-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- ホスト: mysql
-- 生成日時: 2023 年 10 月 31 日 00:31
-- サーバのバージョン: 8.0.32
-- PHP のバージョン: 8.0.19
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
--
-- データベース: `my_app`
--
-- --------------------------------------------------------
--
-- テーブルの構造 `blog_likes`
--
CREATE TABLE `blog_likes` (
`id` bigint UNSIGNED NOT NULL,
`blog_id` bigint UNSIGNED NOT NULL,
`ip` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`ua` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
--
-- ダンプしたテーブルのインデックス
--
--
-- テーブルのインデックス `blog_likes`
--
ALTER TABLE `blog_likes`
ADD PRIMARY KEY (`id`);
--
-- ダンプしたテーブルの AUTO_INCREMENT
--
--
-- テーブルの AUTO_INCREMENT `blog_likes`
--
ALTER TABLE `blog_likes`
MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;
COMMIT;
動作環境情報
"macOS Sonoma" 14.0 "Docker Desktop" 4.17.0 "Laravel Framework" 10.11.0 "Laravel Sail"
コメント