web.php
routes/web.phpは、ルーティング(アクセスされたページに対してどのクラス、メソッドを使用するのか)を設定するファイルとなっています。
まずファイルの先頭で
の形式で使用するコントローラーを読み込みます。
特にデータベースからデータを取得する必要がないときなどは、以下のように記入します。
nameは一意にする必要があるのでアプリケーション内で重複がないようにしてください。
例えば、
とすると、ルート/testにアクセスするとresources/views/test.blade.phpが開かれます。
テンプレートでデータベースからの値を取得するなど、何かしらの処理をする必要があるときは、
例えば、
のとすると、ルート/testにアクセスするとapp/Http/Controllers/TestController.phpのTestControllerクラスのgetメソッドが使用されます。
また、アクセスされたURLのデータを使用されるクラスに変数として渡すこともできます。
のようにすると、ルート/test/test_valueにアクセスすると、TestControllerのgetメソッドでは変数test_dataとしてtest_valueの値を使用することができます。
HTTPリクエストメソッド(getやpost)によって使用するクラスを変更することもでき、その時は
のgetの部分がHTTPリクエストメソッドとなっているので書き換えてください。
このように記入すると、ルート/testにpostメソッドでアクセスするとapp/Http/Controllers/TestController.phpのTestControllerクラスのpostメソッドが使用されます。
また、テンプレート側でnameを使用して呼び出すときは
の形式で記入してください。
まずファイルの先頭で
use App\Http\Controllers\使用するコントローラーのクラス
の形式で使用するコントローラーを読み込みます。
特にデータベースからデータを取得する必要がないときなどは、以下のように記入します。
Route::get('/アクセスされるURL, function(){ return view('使用するテンプレート'); })->name('テンプレートから呼び出すときの名前');
nameは一意にする必要があるのでアプリケーション内で重複がないようにしてください。
例えば、
Route::get('/test', function(){ return view('test_template'); })->name('test_name');
とすると、ルート/testにアクセスするとresources/views/test.blade.phpが開かれます。
テンプレートでデータベースからの値を取得するなど、何かしらの処理をする必要があるときは、
Route::get('/アクセスされるURL}', [使用するクラス:class, '使用するメソッド'])->name('テンプレートから呼び出すときの名前');
例えば、
Route::get('/test', [TestController::class, 'get'])->name('test.get');
のとすると、ルート/testにアクセスするとapp/Http/Controllers/TestController.phpのTestControllerクラスのgetメソッドが使用されます。
また、アクセスされたURLのデータを使用されるクラスに変数として渡すこともできます。
Route::get('/test'/{test_data}, [TestController::class, 'get'])->name('test.get');
のようにすると、ルート/test/test_valueにアクセスすると、TestControllerのgetメソッドでは変数test_dataとしてtest_valueの値を使用することができます。
HTTPリクエストメソッド(getやpost)によって使用するクラスを変更することもでき、その時は
Route::get
のgetの部分がHTTPリクエストメソッドとなっているので書き換えてください。
Route::post('/test', [TestController::class, 'post'])->name('test.post');
このように記入すると、ルート/testにpostメソッドでアクセスするとapp/Http/Controllers/TestController.phpのTestControllerクラスのpostメソッドが使用されます。
また、テンプレート側でnameを使用して呼び出すときは
<a href="{{ route('呼び出したいURLのname') }}">テキスト</a>
の形式で記入してください。