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

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

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

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

Laravel

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

POST

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Blade

Bladeとは、 PHPフレームワークのLaravelで使用することができるテンプレートエンジンです。テンプレートの継承とエスケープ機能を提供します。

Q&A

解決済

1回答

4410閲覧

laravel formでpost送信してもpostで送信されないのを解決したい

kuwabaraakinori

総合スコア10

GET

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

Laravel

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

POST

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Blade

Bladeとは、 PHPフレームワークのLaravelで使用することができるテンプレートエンジンです。テンプレートの継承とエスケープ機能を提供します。

0グッド

0クリップ

投稿2020/07/29 05:31

編集2020/08/01 01:36

前提・実現したいこと

laravel6.0で旅行投稿サイトを制作しています。

今発生している問題は下記のconfirm.blade.phpからsend.blade.phpにpost送信してもpostで送信されないことです。

dd($request->('name'));などで確認してみましたが、nullでそのためvalidationのredirectでget methodを取っているのでこのエラーが発生していると仮定しました。
下記に試したことを載せてあります。

ご教授いただけますと幸いです。

発生している問題・エラーメッセージ

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

該当のソースコード

confirm.balde.php @extends('layouts.app') @section('content') <div class="wrapper"> <div class="col-sm-8"> <form action="{{ route('contact.send') }}" method="post" enctype="multipart/form-data"> @csrf <div class="main"> <div class="form-title"><h2 style="font-family:serif; font-weight:bolder; text-align:center;">確認画面</h2></div> <div class="form-group"> <label for="exampleFormControlTextarea1">メールアドレス</label> <div class="form-control"> {{ $email }} </div> </div> <div class="form-group"> <label for="exampleFormControlTextarea1">名前</label> <div class="form-control"> {{ $name }} </div> </div> <div class="form-group"> <label for="exampleFormControlTextarea1">内容</label> <div class="form-control"> {{ $content }} </div> </div> </div> <button type="submit" class="btn btn-success btn-lg btn-block">送信</button> {{ link_to_route('contact.index' , '修正する' , null , ['class'=>'btn btn-info btn-lg btn-block']) }} </form> </div> </div> @endsection

ContactController

1 public function send(ContactRequest $request) 2 { 3 4 if($request->validated()){ 5 6 $to= 'kaai06221733@gmail.com'; 7 8 Mail::to($to)->send(new Contactsendmail ([ 9 'name'=>$request->name, 10 'from_email' => $request->email, 11 'data' => $request->content, 12 ], 'mail.blade.php')); 13 14 15 $request->session()->regenerateToken(); 16 17 return view('contact.send'); 18 } 19 20 21 }

Contactsendmail

1<?php 2 3namespace App\Mail; 4 5use Illuminate\Bus\Queueable; 6use Illuminate\Contracts\Queue\ShouldQueue; 7use Illuminate\Mail\Mailable; 8use Illuminate\Queue\SerializesModels; 9 10class Contactsendmail extends Mailable 11{ 12 use Queueable, SerializesModels; 13 14 15 protected $data; 16 protected $view; 17 18 19 20 21 public function __construct($data , $view = 'mail.blade.php') 22 { 23 $this->data = $data; 24 $this->view =$view; 25 26 } 27 28 29 public function build() 30 { 31 return $this->from($this->data['from_email'], $this->data['name']) 32 ->to($this->data['to'] , $this->data['to_name']) 33 ->subject($this->data['subject']) 34 ->view('contact.mail' . $this->view) 35 ->with(['data'=> $this->data]); 36 }

試したこと

下記が試したことです。

・route::match(['get' 'post'] ,~)を使用したが同じエラー
・enctype="multipart/form-data"の挿入
・sendメソッドでContactRequestを使用する
・routeのキャッシュをクリアにする
・自作のRequest(ContactRequest)のauthorizeをtrueにする

補足情報(FW/ツールのバージョンなど)

laravel6.0

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

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

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

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

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

guest

回答1

0

自己解決

<input name="email" type="hidden" value="{{ $data['email'] }}">
<input name="email" type="hidden" value="{{ $data['name'] }}"> ``` ``` <input name="email" type="hidden" value="{{ $data['content'] }}"> ``` ```ここに言語を入力 public function confirm(ContactRequest $request) { if($request->validated()){ $data = $request->all(); return view ('contact.confirm' , [ 'data'=>$data ] ); } } ``` をそれぞれ加えたら解決しました。ありがとうございます。

投稿2020/08/01 07:37

編集2020/08/01 07:38
kuwabaraakinori

総合スコア10

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問