LoginSignup
1
0

More than 1 year has passed since last update.

Laravel bladeからcontrollerへのルーティング

Posted at

はじめに

bladeタグに記載したformタグやaタグからcontrollerへのルーティングについて、なんとなく使ってしまっていたところがあったのでまとめておきます。

bladeからのルーティング

下記のようなbladeとルーティングを考えます。

hello.blade.php
<form method="POST" action="{{ action('GreetingController@hello') }}"></form>
<a href="{{ action('GreetingController@hello') }}"></a>
web.php
Route::post('/hello', 'GreetingController@hello')->name('greeting.hello');

この場合、formのサブミット(リンクのクリック)によって、GreetingControllerコントローラーのhelloメソッドが実行されます。流れとしては

  1. サブミットによってaction=""href=""に設定したURLへ遷移する。
  2. web.phpに記載したルーティングのうち、1で指定したURLに一致するルーティングのコントローラのメソッドが実行される。

という形です。
つまり、action=""href=""にはルーティング先に紐づくURLを指定すればよく、action(…)の部分はこのURLを作成してくれています。
実際にaction(…)で作成された値を確認してみるとhttp://localhost/helloとなっていて、下記のようにこのURLを直接action=""href=""に設定しても、同じようにルーティングされます。

hello.blade.php
<form method="POST" action="http://localhost/hello"></form>
<a href="http://localhost/hello"></a>

ただ、実際に開発する際にはURLを直接書くことはなく、冒頭に使用したaction()などのURLを生成するメソッドを使用します。このURLを生成するメソッドには、action()の他にもroute()url()などいくつか種類があります。

参考文献

laravel formのrouteとactionによる処理の書き方
Laravel公式 URL生成

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0