LoginSignup
4
4

More than 3 years have passed since last update.

Laravel6 ViewからControllerへ渡されたget/post データの取得の仕方 パターン整理

Last updated at Posted at 2019-12-04

Laravelでviewからpost/get したデータをControllerで記述形式がいくつかあって、よくわからないので整理します。

とりあえず、思いつく限りでどんな記述形式がるか書き出してみます。
仮にview側でpostかgetでデータが送られたときに、3パターンくらい取得方法がある気がします。
記述形式はどれでもいいのかと思いきや、エラーではじかれる組み合わせがあるっぽいので整理します。

形式は1個でいい気がするけど、どうしていくつもあるのでしょう?
たぶん、整理していくうちに分かるかもしれません。

Controller
function example(Request $request){
 $request->input('name');
 $request->name;
 $request('name');
}

例えば、View側からPOST形式でデータを渡した場合

View
<form method="POST" action="/index">
   <input type="text" name="name">
   <input type="text" name="pass">
   <input type="submit">
</form>

コントローラー側で正しく動作する記述は

Controller
function example(Request $request){
 $request->name;
 $request->input('name');
}

の2つでした!

$request('name');

を使用すると

image.png
こんなエラーが出ちゃいました。

次にget形式ではどうなるか調べてみます。

View
<form method="GET" action="/index">
   <input type="text" name="name">
   <input type="text" name="pass">
   <input type="submit">
</form>

postの時と同じ結果になりました(笑)
ということは、単純に自分の勘違いで使えないコードを覚えてしまったようです。。
どうして、こんな勘違いをしていたのか?
それは2つの記述方法が、混同して記憶違いで直感的に書きやすい記述が刷り込まれてしまったからだと思います(言い訳)
結局、形式が2つある理由はよくわかりませんでした。
1つだけなら、勘違いすることもないのにと思いました。

Laravelでは
ページ表示にview()とredirect()があって、
どちらを使うと便利なのかわからずにいます。

redirect()は記述形式がroute()を使う場合と使わずに記述する方法があるので、
どれがどういうときに向いている記述なのか?
調べたいと思います

以上、勘違いしていましたという記事になりました。

4
4
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
4
4