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

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

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

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

Q&A

解決済

The GET method is not supported for this route. Supported methods: POST.のエラー

silent_skill
silent_skill

総合スコア19

Laravel

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

1回答

0グッド

1クリップ

27889閲覧

投稿2019/07/24 08:58

laravel入門(俗にいう青本)という書籍の235ぺージを進めていたところ、次のエラーが出てしまいました。

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
The GET method is not supported for this route. Supported methods: POST.

ゲットメソッドがサポートされていないということなのですが、原因がよくわかりません。

わかる方いましたら、回答お願いします。

php

1<?php 2 3namespace App\Http\Controllers; 4 5use App\Person; 6use Illuminate\Http\Request; 7 8class PersonController extends Controller 9{ 10 public function index(Request $request) 11 { 12 $items = Person::all(); 13 return view('person.index', ['items' => $items]); 14 } 15 16 public function find(Request $request) 17 { 18 return view('person.find', ['input' => '']); 19 } 20 21 public function search(Request $request) 22 { 23 $item = Person::find($request->input); 24 $param = ['input' => $request->input, 'item' => $item]; 25 return view('person.find', $param); 26 } 27} 28

php

1@extends('layouts.helloapp') 2 3@section('title', 'Person.find') 4 5@section('menubar') 6 @parent 7 検索ページ 8@endsection 9 10@section('content') 11 <form action="/person/find" method="post"> 12 {{csrf_field()}} 13 <input type="text" name="input" value="{{$input}}"> 14 <input type="submit" value="find"> 15 </form> 16 @if (isset($item)) 17 <table> 18 <tr><th>Data</th></tr> 19 <tr> 20 <td>{{$item->getData()}}</td> 21 </tr> 22 </table> 23 @endif 24@endsection 25 26@section('footer') 27copyright 2017 tuyano. 28@endsection

php

1<?php 2 3/* 4|-------------------------------------------------------------------------- 5| Web Routes 6|-------------------------------------------------------------------------- 7| 8| Here is where you can register web routes for your application. These 9| routes are loaded by the RouteServiceProvider within a group which 10| contains the "web" middleware group. Now create something great! 11| 12*/ 13//use App\Http\Middleware\HelloMiddleware; 14 15Route::get('hello', 'HelloController@index'); 16Route::get('person', 'PersonController@index'); 17Route::get('Person/find', 'PersonController@find'); 18Route::post('person/find', 'personController@search'); 19Route::post('hello', 'HelloController@post'); 20 21

以下のような質問にはグッドを送りましょう

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

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

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

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

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

m.ts10806

2019/07/26 05:52 編集

どのように解決されたのでしょうか。 https://teratail.com/help/question-tips#questionTips4-2 放置して次の質問を立てられたわけですし、結局何もコメントがないまま解決済みに選んだだけになると この質問もそれについた回答も無駄になります。 むしろ、PHPすら理解が薄いままLaravelを強引に進めるのは遠回りということを理解されたのでしょうか?

回答1

3

ベストアンサー

ルーティングの設定がよろしくないと思います。

php

1Route::get('Person/find', 'PersonController@find'); 2Route::post('person/find', 'personController@search');

大文字小文字は大別されます。
aとAは別物です。
クラス名も確かファイル名とイコール、かつ、冒頭は大文字である必要があったはずです(仕様説明資料

ちなみに「MethodNotAllowedHttpException」でteratail内を検索するとそれなりに出てきます。
エラーメッセージで検索するのもありです。

これに限らず、大抵のことは先人がいます。
特に提示の書籍は以前の質問に書いたようにLaravelを業務・趣味などで重用している人には評判が良くないわりに
購入して利用する人が多く、書籍通りに進んでいって詰まっている人が沢山います。
必ず誰かが同じ壁にあたっています。

なので、できればその書籍をメインとするのではなく
必ずLaravelドキュメントを確認してください(日本語訳ドキュメントは優秀です)

蛇足:
ちなみにLaravelはベースとなるPHPの知識・技術の要求レベルが高いフレームワークです。
「Web職人のためのフレームワーク」が宣伝文句です。
それなりにPHPを身につけており、ドキュメントやリファレンスをきちんと使いこなせる人でないと
太刀打ちできないシーンが多いです。
時にフレームワークのコアソースを読んでいって仕様の深層を探れるくらいの技術は求められます。
※もちろんドキュメントきちんと読みこんで理解できるようであればOK

投稿2019/07/24 09:21

編集2019/07/24 09:45
m.ts10806

総合スコア80026

kkk_k, 6stThe, noppelabouya👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

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

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

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

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

Laravel

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