Laravel7 CRUD (作成・読み込み・編集・削除) 機能があるタスクリストを実装する手順

Laravel7 CRUD (作成・読み込み・編集・削除) 機能があるタスクリストを実装する手順

Laravel7でCRUD (Create・Read・Update・Delete) 機能を実装して、タスクリストアプリケーションを作成するまで手順を記述してます。

環境

  • OS windows10 pro 64bit
  • Composer 1.10.5
  • PHP 7.4.5
  • MariaDB 10.4.12
  • Laravel Framework 7.6.2

※windows10に Laravel のインストールはこちら
※windows10に Composer のインストールはこちら
※windows10に PHP のインストールはこちら
※windows10に MariaDB のインストールはこちら

完成イメージ

Laravelアプリケーション作成

任意の場所で、プロジェクトを作成します 。
ここではsampleという名称で作成してます。

初期設定

.envファイル設定

環境に合わせてMariaDBとの接続情報を設定しておきます。

日本語環境設定

configフォルダ配下の「app.php」のtimezoneとlocalを変更しておきます。

bootstrap導入

レイアウトにbootstrapを利用するので、詳しい手順はこちらに記述してますが、下記のコマンドを実行して利用可能にしておきます。
※sampleプロジェクト配下で実行して下さい

モデル作成

下記のコマンドを実行して、モデルとマイグレーションファイルを作成します。

「sample\app\Task.php」が作成されるので、下記の通りに編集します。

$fillableに指定したカラムはホワイトリストとなり、create()やfill()、update()で値の代入が可能となります。

※$fillableと$guardedの使い方はこちら

テーブル作成

モデル作成時に生成された「sample\database\migrations\xxxx_xx_xx_xxxxxx_create_tasks_table.php」を下記の通りに編集して、テーブルを作成します。

マイグレーションを実行します。

テーブル「tasks」が作成されて、カラムも作成されます。

共通レイアウト作成

「sample\resources\views\layout.blade.php」を作成して共通レイアウトとして利用します。
※welcome.blade.phpをベースに作成してます。

コントローラー作成

次にコントローラーを作成します。
–resourceで、 CRUDに必要なメソッドを自動生成してくれます 。

app\Http\Controllers\TaskController.phpが作成されるので、下記の通りに編集しておきます。

バリデーション作成

ここでは、必須項目の確認だけ行います。まずは下記のコマンドで、フォームリクエスト用のクラスを作成します。

app\Http\Requests\StoreTask.phpを下記の通りに編集します。

ルーティング追加

アクセスするURLを設定するため、ルーティングを記述します。
「’only’ =>」を利用すると、ルーティングを制限することが可能です。

routes\web.phpに下記を追加します。

※resource使用時のメソッドとURIの対応表はこちら

ビュー作成

次にレイアウト部であるviewを作成します。

タスク一覧画面作成

resources\views内で「task」というフォルダを作成して、タスク一覧画面となる「index.blade.php」を下記の内容で、新たに作成します。

タスクを追加すると、一覧画面に表示されます。

タスク新規作成画面

タスク一覧画面となる「create.blade.php」を下記の内容で、作成します。

下記の画面でタスクを追加することが可能です。

追加したタスクは一覧画面に表示されます。
完了ボタンをクリックすると完了となり、削除ボタンをクリックすると、案件が削除されます。

タスク詳細画面

タスクの詳細が確認できる画面となる「show.blade.php」を下記の内容で、作成します。

この画面でタスクの詳細が確認できます。

タスク編集画面

タスク編集画面となる「edit.blade.php」を下記の内容で、作成します。

こちらの画面でタスクの編集が可能となります。

実行

必要なソースコードは全て記述されたので、実行してみます。
ここではプライベートIPでもアクセスできるように「–host」を指定してます。

ブラウザから http://プライベートIP:8000/task にアクセスにして動作を確認します。