はじめに
最近ようやくちゃんとLaravelの学習を始めました。
ルーティング周りがうる覚えなせいで画面表示部分からひたすらつまづいているので
備忘録として「Route::???」の内容をこちらの記事にまとめようと考えました。
ルーティング周りで苦労している方の役に立てれば嬉しいです!
間違いやこういうものもあるよ!というご意見お待ちしております!
どしどし指摘してください!
基本的なルーティング
Route::get('/', [MainController::class, 'index']);
まずは基本的な書き方から。これがあれば最低限の遷移はできるよという書き方です。
ブラウザで「localhost:8080/」にアクセスした場合は、MainControllerのindexメソッドを呼び出します。
そのまま画面表示をしたり、DBからデータを取得して画面に表示させたりなど。
getメソッドの第一引数
「/」を指定することで、第二引数で指定したメソッドを呼び出すことができる
'/'
getメソッドの第二引数
MainControllerクラスのindexメソッドを呼び出す
[MainController::class, 'index']
nameメソッド
Route::get('/tests', [TestController::class, 'index'])->name('test');
上記の場合、TestControllerのindexメソッドに対して名前を付けることができるのが、nameメソッドです。
リダイレクト
名前付きルートは、リダイレクト時にも非常に便利です。
redirect()ヘルパー関数を使用して名前付きルートにリダイレクト(遷移)できます。
// ページ遷移のため主にアクションの実行後、ユーザーを他のページに転送したりする
return redirect()->route('test');
「->name('xxx')」で指定した名前付きルートの主な使い方
ビュー内のリンク生成
Bladeテンプレート内で名前付きルートを使用して、HTMLリンクを生成できます。
<a href="{{ route('test') }}">テスト</a>
コントローラー内からのリダイレクト
コントローラー内で名前付きルートを使用して、リダイレクトを実行できます。
return redirect()->route('test');
フォームタグのアクション属性
フォームの action 属性に名前付きルートを指定して、フォームの送信先を定義できます。
profile.update
はresources->views->profile->updateのviews配下を示しています。
<form method="POST" action="{{ route('tests.home') }}">
<!-- フォームの内容 -->
</form>
APIルートの生成
名前付きルートは、LaravelのAPIルートでも使用できます。
route()ヘルパー関数
を使用して、APIルートへのリクエストURLを生成できます。
$url = route('api.users.index');
最後に
こちらの記事を見てインプットはできたと思いますが、自分の手でアウトプットすることが1番大切です。
見てコピペするだけでなく、自分なりに改造したりしてください。
「こう書いたらどうなるかな?」など試したりしてください。
そうすることで、あなたの血肉となってプログラミングを習得することが出来るでしょう。
と、先輩に言われたので共有しますw
一緒に頑張りましょうね!!!
最後まで読んでいただきありがとうございました!