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

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

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

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

Q&A

解決済

1回答

29892閲覧

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

silent_skill

総合スコア19

Laravel

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

0グッド

1クリップ

投稿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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/07/26 05:52 編集

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

回答1

0

ベストアンサー

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

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

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問