💨
Laravel8.xとVue.js3でToDoアプリを作成 3 ~DB作成~
はじめに
Laravel8.xとVue.js3を使用してToDoアプリを作成の第三弾です!
Laravelの環境構築
ここまで終わればやっとコードが書けます!
構築
LaravelのView部分をVue.jsに置き換えて作成をしていきます。
フロントエンド
Vue.js3
TypeScript
バックエンド
PHP7.4.1
Laravel8.x
データベース
MYSQL8.0
インフラ
Docker
docker-compose
Nginx
テーブル作成
テーブルイメージ
こういった形式のテーブルを作りたいと思います。
todos
に複数のtodo_details
が紐付いているイメージです!!
phpのトランザクションもやりたいのでこういった形にしました。
作成
migratationのファイルを作成していきますが、先に不要なファイルを削除しましょう。
cd src/database/
m -rf migrations
mkdir migrations
次に下記コマンドでmigrationファイルを作成していきます。
docker-compose run app php artisan make:migration create_todos_table
docker-compose run app php artisan make:migration create_todoDetails_table
migrations
フォルダにmigrationファイルが作成されました!
そこに記述をしていきます。
まずはtodos
テーブルを記述します。
src/datavase/migration/yyyy_MM_dd_hhmmss_create_todos_table.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTodosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('todos', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('todos');
}
}
次にtodoDetails
テーブルを記述します。
src/datavase/migration/yyyy_MM_dd_hhmmss_create_todo_details_table.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTodoDetailsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('todo_details', function (Blueprint $table) {
$table->id();
$table -> string('detail');
$table->timestamps();
$table->foreignId('todo_id')->constrained();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('todo_details');
}
}
$table->foreign('todo_id')->references('id')->on('todos');
の所でTodos
テーブルのId
との紐付けを行っております。
ここまでできたらmigrateしたいと思います。
docker-compose run app php artisan migrate
確認
mysqlに接続してみて下記のように作成されていれば、成功です!
+------------------------+
| Tables_in_db_todo |
+------------------------+
| migrations |
| personal_access_tokens |
| todo_details |
| todos |
+------------------------+
終わり
今回はここまでです!!
次回は登録・表示をしていきたいと思います!
ぜひZennとTwitterのフォローをよろしくお願いします!!
Discussion