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

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

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

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

Laravel

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

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

Q&A

解決済

1回答

1447閲覧

LaravelでGetを記述しているにも関わらず、”GET method is not supported”と出る。

Yuu412

総合スコア37

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

Laravel

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

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

0グッド

0クリップ

投稿2020/07/04 07:02

入力フォームで、送信ボタンをクリックすると、入力した値がPOSTされ、DBに格納されてから、'/'にリダイレクトする処理としているつもりなのですが、送信ボタンを押すと以下のようなメッセージが出て、どうもルート処理がきちんとできていないようです。

その箇所が分からないので、教えていただきたいです。

The GET method is not supported for this route. Supported methods: POST.

イメージ説明

web.php

1<?php 2 3use App\Laboratory; 4use Illuminate\Http\Request; 5 6Route::group(['middleware' => ['web']], function () { 7 8 //研究室サイトダッシュボード表示 9 Route::get('/', function () 10 { 11 return view('laboratories'); 12 }); 13 14 Route::post('/laboratories', function (Request $request) { 15 $validator = Validator::make($request->all(), [ 16 'lab_name' => 'required|min:3|max:32', 17 ]); 18 19 //バリテーション:エラー 20 if($validator->fails()) { 21 return redirect('/') 22 ->withInput() 23 ->withError($validator); 24 } 25 26 //研究室のDBにデータを格納 27 //Eloquentモデル (=MySQL記述なしにデータベース管理をしてくれる) 28 29 $today = date("Y-m-d H:i:s"); //現在時刻の取得 30 31 $laboratories = new Laboratory; 32 $laboratories->lab_name = $request->lab_name; 33 $laboratories->lab_univ = "東京大学"; 34 $laboratories->lab_evaluation = '4'; 35 $laboratories->add_time = $today; 36 $laboratories->save(); 37 return redirect('/'); 38 }); 39 40}); 41 42 43Route::delete('/laboratory{laboratory}', function (Laboratory $laboratory) { 44}); 45 46Auth::routes(); //認証機能を使用する。 47 48Route::get('/home', 'HomeController@index')->name('home'); 49

laboratories.blade.php

1@extends('layouts.app') 2@section('content') 3 4 <!--Bootstrapの定形コード--> 5 <div class="card-body"> 6 <div class="card-title"> 7 研究室一覧 8 </div> 9 </div> 10 11 <!--バリテーションエラーの表示に使用--> 12 @include('common.errors') 13 <!--end:バリテーションエラーの表示に使用--> 14 15 <!--研究室登録フォーム--> 16 <form action="{{ url('laboratories') }}" methood="POST" class="form-horizontal"> 17 {{ csrf_field() }} 18 19 <!--研究室の名前--> 20 <div class="form-groupe"> 21 <div class="col-sm-6"> 22 <input type="text" name="lab_name" class="form-control"> 23 </div> 24 </div> 25 26 <!--研究室 登録ボタン--> 27 <div class="form-groupe"> 28 <div class="col-offset-3 col-sm-6"> 29 <button type="submit" class="btn btn-primary">送信する</button> 30 </div> 31 </div> 32 </form> 33 34 <!--現在登録済みの研究室一覧--> 35@endsection 36

確認済みの事項

POSTするときに指定したURLは、意図通りのURLとなっていました。

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

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

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

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

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

guest

回答1

0

ベストアンサー

フォームのメソッドのつづりが間違ってます。
methood

method

投稿2020/07/04 07:37

hayato7

総合スコア1135

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

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

m.ts10806

2020/07/04 07:52

当回答以外に原因が考えられないので、補足としてぶら下がらせていただきます。 質問本文より: > POSTするときに指定したURLは、意図通りのURLとなっていました。 ですが、「POSTしたら処理してどうなっていても'/'のリダイレクト」が仕様なら、URLは'/'となってないとおかしいですよね。 formにmethodが指定されないとデフォルト値は「GET」でリクエストが送信されますので、'/laboratories'にGET送信される→ルーティングにない→GETメソッドは設定にない となっているわけです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問