質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

受付中

laravelのviewのformから値が受け取れない!!

Ichiro08
Ichiro08

総合スコア8

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

1回答

0リアクション

0クリップ

474閲覧

投稿2021/01/03 02:12

やりたいこと

viewのformで入力されたものをcontrollerの $keyword = $_POST['keyword'] ? $_POST['keyword'] : ''; で受け取りたい!!
ですが、うまくいきません。。


具体的に言うと、、、

    1. // $keyword = $_POST['keyword'] ? $_POST['keyword'] : '';
    $keyword = '金沢';


このように上をコメントアウトして直接値を入れているとviewにはちゃんと表示される。

    1. formのactionを{{ route('/home') }}など色々設定してみたけどうまく行かない。下記のエラーが出る。

Route [/home] not defined. (View: /work/resources/views/home/top.blade.php)

  • $keyword = $_POST['keyword'] ? $_POST['keyword'] : '';

//$keyword = '金沢';

このようにコメントアウトを逆にすると下記のエラーが出る。

Undefined index: keyword


このコードたちです

view

<form action="" method="POST"> {{csrf_field()}} <div class="p-form"> <div class="p-form-inner"> <input type="text" name="keyword" placeholder="フリーワード検索(店名 地名、駅名など)"> <input type="submit" value=検索> </div> </div> </form>

controller

public function test2(){ // $keyword = $_POST['keyword'] ? $_POST['keyword'] : ''; var_dump($_POST); $keyword = '金沢'; $baseurl = 'http://webservice.recruit.co.jp/hotpepper/gourmet/v1/'; $params = [ 'key' => 'APIキーは伏せさせて頂きます', 'format' => 'json', 'keyword' => $keyword, 'count' => 20, ]; $url = $baseurl . '?' . http_build_query($params, '', '&'); // リクエストを送り結果を取得 $result = file_get_contents($url); // 取得した翻訳結果のjsonをPHPの連想配列に変換 $json = json_decode($result, true); // print_r($json); $shops = $json['results']['shop']; // エラーがあった場合 if( isset($json['results']['error']) ){ echo $json['results']['error'][0]['message']; exit; } // 取得件数 $results_available = $json['results']['results_available']; if( $results_available > 100 ){ $results_available = 100; } elseif( $results_available == 0 ) { echo '指定の条件ではお店が見つかりませんでした。'; exit; } return view('home.top',compact('keyword','shops' ,'json','results_available')); }

route

Route::get('/home', 'App\Http\Controllers\HomeController@top'); Route::get('/home', 'App\Http\Controllers\HomeController@test2');

説明がわかりにくいとは思いますが、解決方法教えてください!!!
よろしくお願い致します!

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

phper.k

2021/01/03 02:49

何を参考にこのコードを書いているのでしょうか?
m.ts10806

2021/01/03 03:01

フレームワークでスーパーグローバル変数直参照はありえません。ドキュメント読んでください。
kawax

2021/01/03 03:08

Laravelで$_POST使うことはない。PHPは完璧に理解してる前提で「素のPHPではこう書いてたけどLaravelではこう」と全部覚え直す必要がある。PHP初心者がLaravel使うとこういう何もかも間違った使い方するだけなので順番に学習しなければならない。
Ichiro08

2021/01/03 04:09

https://tacs-port.tech/blog/api/blog-241/ ↑ このサイトを参考にしています! PHPですが、laravel用に変換している最中です。。 formから値を渡すには ドキュメントも読んだりして $keyword = $request->input('keyword'); などに変更しているのですが、まだうまく作動していない状況です。。
kai0310

2021/01/03 05:53 編集

参考にしている記事を見ましたが、記事ではLaravelを使用していないですね。
m.ts10806

2021/01/03 06:23

「も」ではなく、主にしてください
Ichiro08

2021/01/03 06:27

参考サイトはPHPで、laravel用に変換できるかと思ったのですが、なかなか苦戦しています。。。
Ichiro08

2021/01/03 06:30

今までは他のサイトなどを中心に読んでいました。。 主にします! ありがとうございます! ドキュメントでわからないときなどは1週間ぐらい考えてもわからないときなどの場合、m.ts10806ならどうされますか?
m.ts10806

2021/01/03 08:31

呼び捨てする人にできるアドバイスはありません。
Ichiro08

2021/01/03 09:09

さんが抜けていました! 大変失礼いたしました!
m.ts10806

2021/01/03 09:28

いずれにしても1週間も悩む時点で根本的にやり方を間違えています。 ドキュメントの多くは辞書として利用するもの。チュートリアルすら通してないのに何かを作ろうとしている時点で間違ってます。 その1週間を基礎演習にまわしたほうが100倍はマシでしょう。 直接的な表現すると、このような質問をしている時間が無駄です。回答やアドバイスもらったところで成長に繋がらない内容です。
Ichiro08

2021/01/03 09:54

勉強になりました! すぐに実践させて頂きます! ありがとうございます!

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。