PHPフレームワークLaravel入門Chapter2でつまずいたところ

ralavel version10

43ページ

コントローラーにHelloControllerを作り、それにルートを割り当てる部分。

Route::get('hello', 'HelloController');

コントローラーの呼び出しが必要

use App\Http\Controllers\HelloController;

web.phpHelloControllerをインポートする必要がある。( use 文でコントローラをインポート)

この記述がないと、HelloController::class が正しく解決されず、ルートが機能しない。

Laravel 8以降、コントローラの呼び出しは通常 use App\Http\Controllers\HelloController; のように、完全修飾クラス名を指定する必要がある。

Route::get()の書き方

Route::get('hello', [HelloController::class, 'index']); // 配列形式で指定

まず第2引数は配列形式で記述します。

'index'は、HelloController 内の index メソッドを指定しています。このメソッドが /hello にアクセスした際に実行される。

シングルアクションコントローラのルート

50ページ

Route::get('hello', HelloController::class);

Route::get() を使って __invoke() メソッドを呼び出す場合、コントローラクラス名だけを渡すのが正しいです。配列で書く必要はありません。

うさぎ
うさぎ

おつかれえええええ!!!