laravel8でtodoリスト管理ツールを作る

Laravel 8を使用して、ToDoリスト管理ツールを作成する手順を以下に示します。

1.Laravelをインストールする

Laravel 8をインストールするには、ターミナルから以下のコマンドを実行します。

composer create-project --prefer-dist laravel/laravel todo-list

2.データベースを設定する

データベースの設定を変更するには、.env ファイルを編集します。以下の設定に変更してください。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=todo_list
DB_USERNAME=root
DB_PASSWORD=

3.データベースをマイグレーションする

ターミナルで以下のコマンドを実行し、ToDoリストのデータベースをマイグレーションします。

php artisan migrate

4.ToDoモデルを作成する

ToDoモデルを作成するには、ターミナルで以下のコマンドを実行します。

php artisan make:model Todo -m

5.マイグレーションファイルを編集する

ToDoリストのためのテーブルを作成するため、database/migrations/{timestamp}_create_todos_table.php を編集します。

public function up()
{
    Schema::create('todos', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->text('description')->nullable();
        $table->boolean('completed')->default(false);
        $table->timestamps();
    });
}

public function down()
{
    Schema::dropIfExists('todos');
}

6.ルートを作成する

ToDoリストを表示するためのルートを作成します。routes/web.php ファイルを開き、以下のコードを追加します。

Route::get('/', [TodoController::class, 'index'])->name('todo.index');

7.ToDoコントローラーを作成する

ターミナルで以下のコマンドを実行し、ToDoコントローラーを作成します。

php artisan make:controller TodoController

8.ToDoコントローラーを編集する

ToDoコントローラーを編集して、ToDoリストを表示するためのアクションを作成します。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Todo;

class TodoController extends Controller
{
    public function index()
    {
        $todos = Todo::all();

        return view('todo.index', compact('todos'));
    }
}

9.ToDoビューを作成する

ToDoリストを表示するためのビューを作成します。resources/views/todo/index.blade.php ファイルを作成し、以下のコードを追加します。

<!DOCTYPE html>
<html>
<head>
    <title>ToDo List</title>
</head>
<body>
    <h1>ToDo List</h1>
    <ul>
        @foreach ($todos as $todo)
            <li>{{ $todo->title }}</li>
        @endforeach
    </ul>
</body>
</html>

10.ToDoリストを追加するフォームを作成する

ToDoリストに項目を追加するフォームを作成します。resources/views/todo/index.blade.php ファイルを編集し、以下のコードを追加します。

<!DOCTYPE html>
<html>
<head>
    <title>ToDo List</title>
</head>
<body>
    <h1>ToDo List</h1>

    <form method="POST" action="{{ route('todo.store') }}">
        @csrf
        <label>Title</label>
        <input type="text" name="title">
        <br>
        <label>Description</label>
        <textarea name="description"></textarea>
        <br>
        <button type="submit">Add ToDo</button>
    </form>

    <ul>
        @foreach ($todos as $todo)
            <li>{{ $todo->title }}</li>
        @endforeach
    </ul>
</body>
</html>

11.ToDoリストを追加するためのルートを作成する

ToDoリストを追加するためのルートを作成します。routes/web.php ファイルを開き、以下のコードを追加します。

Route::post('/todo', [TodoController::class, 'store'])->name('todo.store');

12.ToDoを追加するためのアクションを作成する

ToDoを追加するためのアクションを作成します。app/Http/Controllers/TodoController.php ファイルを編集し、以下のコードを追加します。

public function store(Request $request)
{
    $todo = new Todo;
    $todo->title = $request->title;
    $todo->description = $request->description;
    $todo->save();

    return redirect()->route('todo.index');
}

以上で、Laravel 8を使用したToDoリスト管理ツールの作成が完了しました。必要に応じて、デザインや機能を追加してカスタマイズしてください。

シェアする

上にスクロール