laravelのviewのformから値が受け取れない!!
解決したいこと
viewのformで入力されたものをcontrollerの $keyword = $_POST['keyword'] ? $_POST['keyword'] : ''; で受け取りたい!!
ですが、うまくいきません。。
発生している問題・エラー
- // $keyword = $_POST['keyword'] ? $_POST['keyword'] : '';
$keyword = '金沢'; ↑ このように上をコメントアウトして直接値を入れているとviewにはちゃんと表示される。 - 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');
説明がわかりにくいとは思いますが、解決方法教えてください!!!
よろしくお願い致します!
0