Laravel 5を使用してシンプルなTodoリストアプリを作成する方法について、完全かつ包括的な記事をお届けします。このチュートリアルでは、Laravelの基本的な使い方を学びながら、Todoリストを作成していきます。LaravelはPHPで書かれたフレームワークで、簡潔かつ強力なツールを提供しており、アプリケーションの開発が効率的に行えます。
必要な環境
まず、Laravelを使った開発には以下の環境が整っていることが前提となります。
-
PHP: 7.1以上
-
Composer: Laravelのパッケージ管理ツール
-
データベース: MySQLまたはSQLite
-
Webサーバー: ApacheやNginx(またはPHPの内蔵サーバー)
また、LaravelのインストールにはComposerが必要です。もしComposerがインストールされていない場合は、Composer公式サイトからインストールしてください。
第1章: Laravelのインストール
-
プロジェクトの作成
Laravelを新規にインストールするために、以下のコマンドを実行します。このコマンドは、Laravelの最新バージョンをインストールします。
bashcomposer create-project --prefer-dist laravel/laravel todolistこれで、
todolistというディレクトリにLaravelのプロジェクトが作成されます。 -
ディレクトリに移動
作成したプロジェクトに移動します。
bashcd todolist -
Laravel開発サーバーを起動
Laravelには開発用サーバーが内蔵されています。以下のコマンドでサーバーを起動します。
bashphp artisan serve起動後、
http://localhost:8000でLaravelの初期画面が確認できます。
第2章: データベースの設定
Todoリストでは、データを保存するためにデータベースを使用します。まず、Laravelが提供するデータベース設定を行います。
-
.envファイルの編集プロジェクトのルートにある
.envファイルを開き、データベースの設定を行います。以下はMySQLを使用する場合の設定例です。envDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=todolist DB_USERNAME=root DB_PASSWORD= -
データベースの作成
設定したデータベース名(
todolist)でMySQLにデータベースを作成します。MySQLにログインして、以下のコマンドでデータベースを作成します。sqlCREATE DATABASE todolist;
第3章: モデルとマイグレーションの作成
Laravelでは、データベースのテーブルとやり取りするために「モデル」を使用します。また、マイグレーションを使ってデータベースのテーブルを管理できます。
-
モデルとマイグレーションの作成
Todoリストに必要なテーブルは、タスク(Todo)のデータを格納するための
tasksテーブルです。以下のコマンドを実行して、Taskモデルとそのマイグレーションファイルを作成します。bashphp artisan make:model Task -mこのコマンドで、
app/Models/Task.phpにモデルが、database/migrationsフォルダにマイグレーションファイルが作成されます。 -
マイグレーションの編集
database/migrationsフォルダに作成されたマイグレーションファイルを開き、tasksテーブルを作成するために、以下の内容を追加します。phppublic function up() { Schema::create('tasks', function (Blueprint $table) { $table->id(); $table->string('title'); $table->text('description')->nullable(); $table->timestamps(); }); }これで、
tasksテーブルには、title(タイトル)、description(詳細)、created_atとupdated_at(自動生成されるタイムスタンプ)のカラムが作成されます。 -
マイグレーションの実行
次に、マイグレーションを実行して、データベースにテーブルを作成します。
bashphp artisan migrate
第4章: コントローラーの作成
次に、Todoリストのタスクを管理するためのコントローラーを作成します。
-
コントローラーの作成
以下のコマンドで
TaskControllerを作成します。bashphp artisan make:controller TaskController -
コントローラーの編集
app/Http/Controllers/TaskController.phpを開き、Todoリストに必要なCRUD操作(作成、読み取り、更新、削除)を実装します。phppublic function index() { $tasks = Task::all(); return view('tasks.index', compact('tasks')); } public function create() { return view('tasks.create'); } public function store(Request $request) { $request->validate([ 'title' => 'required|string|max:255', 'description' => 'nullable|string', ]); Task::create($request->all()); return redirect()->route('tasks.index'); } public function edit(Task $task) { return view('tasks.edit', compact('task')); } public function update(Request $request, Task $task) { $request->validate([ 'title' => 'required|string|max:255', 'description' => 'nullable|string', ]); $task->update($request->all()); return redirect()->route('tasks.index'); } public function destroy(Task $task) { $task->delete(); return redirect()->route('tasks.index'); }
第5章: ビューの作成
-
ビューの作成
resources/views/tasksディレクトリを作成し、その中にindex.blade.php、create.blade.php、edit.blade.phpを作成します。これらは、それぞれタスクの一覧表示、作成フォーム、編集フォームに対応します。 -
タスク一覧ビュー (
index.blade.php)php@foreach ($tasks as $task) @endforeach -
タスク作成フォーム (
create.blade.php)php
第6章: ルートの設定
最後に、routes/web.phpにルートを設定します。
phpRoute::resource('tasks', TaskController::class);
これで、tasksに関連するCRUD操作がすべて対応するルートに紐付けられました。
まとめ
ここまでで、Laravelを使用してシンプルなTodoリストアプリを作成する準備が整いました。次回の部分では、さらに細かいカスタマイズやフロントエンドの改善を行っていきます。このチュートリアルを通じて、Laravelの基本的な使い方や、データベースとの連携方法を理解できたと思います。次回もぜひお楽しみに!
