Laravel 10 入門トップページ


目次

  1. プロジェクトを作成する
  2. データベースファイルを作成する
  3. Visual Studio Code を設定する
  4. .env を編集して初期設定する
  5. タイムゾーンと言語を設定する
  6. Webサーバを起動して終了する
  7. マイグレーションファイルを生成する
  8. テスト用データを設定する
  9. モデルを作成する
  10. コントローラを作成する
  11. ルートを定義する
  12. データベースからデータを取り出す
  13. トップページにリンクを設置する
  14. ビューを使ってレコードを表示する
  15. コメントを個別に表示するページを作成する
  16. コメント投稿機能を実装する
  17. 投稿内容を検証する
  18. 投稿内容を編集する
  19. 投稿コメントを削除する
  20. テストの自動化を実現する
  21. テストカバレッジを計測する
  22. 複数のLinuxコマンドを実行し,履歴からも実行する
  23. ビューをレイアウト化する
  24. Bootstrap を導入する
  25. SQLite を操作する
  26. フェイカでシーダを拡張する
  27. ページネーションを作る
  28. シーダに登録日時と更新日時を追加する
  29. 一覧表示を更新日時の降順にする
  30. フラッシュメッセージを表示する
  31. スタイルシートでデザインを整える

Laravel によるコメント掲示板の開発

ルートを定義する

ルートはどの URI が指定されたときに,どのような処理を呼び出すかを指定します.現在定義されているルートの一覧を確認するには,php artisan route:list を実行します.まだ何も追加していない初期状態では次のような結果になります.

vagrant@ubuntu2204 comment_app $ php artisan route:list ⏎

  GET|HEAD   / ........................................................
  POST       _ignition/execute-solution ignition.executeSolution › Spa…
  GET|HEAD   _ignition/health-check ignition.healthCheck › Spatie\Lara…
  POST       _ignition/update-config ignition.updateConfig › Spatie\La…
  GET|HEAD   api/user .................................................
  GET|HEAD   sanctum/csrf-cookie sanctum.csrf-cookie › Laravel\Sanctum…

                                                     Showing [6] routes

vagrant@ubuntu2204 comment_app $

実際のルートの定義は routes/web.php に次のように記載されています.つまり, / のリクエストに対して,welcome という名前のビューを呼び出すことが定義されています.具体的には resources/views/welcome.blade.php というファイルを呼び出すことを意味しています.

routes/web.php<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

この routes/web.php に /comments の URI が指定されたときに CommentsController の index 関数を呼び出すように設定してみます.

routes/web.php<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\CommentsController;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

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

上の記載によってルートの定義が追加されたことを確認しよう.

vagrant@ubuntu2204 comment_app $ php artisan route:list ⏎

  GET|HEAD   / ........................................................
  POST       _ignition/execute-solution ignition.executeSolution › Spa…
  GET|HEAD   _ignition/health-check ignition.healthCheck › Spatie\Lara…
  POST       _ignition/update-config ignition.updateConfig › Spatie\La…
  GET|HEAD   api/user .................................................
  GET|HEAD   comments ....... comments.index › CommentsController@index
  GET|HEAD   sanctum/csrf-cookie sanctum.csrf-cookie › Laravel\Sanctum…

                                                     Showing [7] routes

vagrant@ubuntu2204 comment_app $

Web サーバを起動して,実際に /comments にアクセスしてみよう.(Web サーバを終了するには Ctrl + C を押下してください)

vagrant@ubuntu2204 comment_app $ php artisan serve --host=192.168.56.101 --port=8000 ⏎

   INFO  Server running on [http://192.168.56.101:8000].

  Press Ctrl+C to stop the server
laravel10-2023-comment-14.png

目次に戻る