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

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

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

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

PHP

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

4347閲覧

Laravel5.1でformの実装に失敗する

kalon

総合スコア198

Laravel

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

PHP

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2016/11/23 05:50

編集2016/11/23 08:53

皆様いつもお世話になっております。

こちらを参考に
http://libro.tuyano.com/index3?id=3786004
formでテキストエリアに文字を入力して送信を押すと、どんな文字が入力されたのかテキストエリアの上に表示されるシンプルなformを試しに書いてみたのですが、

TokenMismatchException in VerifyCsrfToken.php line 53:

というエラーが表示されて実現できません。CSRF保護が関係するのかと思い、<?php echo csrf_field(); ?>というPHPコードをform内に挿入してみてもやはり
MethodNotAllowedHttpException in RouteCollection.php line 218:
というエラーでした。どうしたら正常に動作するformになるでしょうか?

アドバイスとご指摘のほどよろしくお願いします。

php

1app/Http/routes.php 2 3<?php 4 5/* 6|-------------------------------------------------------------------------- 7| Application Routes 8|-------------------------------------------------------------------------- 9| 10| Here is where you can register all of the routes for an application. 11| It's a breeze. Simply tell Laravel the URIs it should respond to 12| and give it the controller to call when that URI is requested. 13| 14*/ 15 16Route::get('/', function () { 17 #return view('welcome'); 18 return '<html><body><h1>Hello World</h1></body></html>'; 19}); 20 21Route::get('/hi', 'HeloController@hi'); 22

php

1 2app/Http/Controllers/HeloController.php 3 4<?php 5 6namespace App\Http\Controllers; 7 8use Illuminate\Http\Request; 9 10use App\Http\Requests; 11use App\Http\Controllers\Controller; 12 13class HeloController extends Controller 14{ 15 /** 16 * Display a listing of the resource. 17 * 18 * @return \Illuminate\Http\Response 19 */ 20 public function index(Request $request) 21 { 22 23 $data = MyTable::all(); 24 return view('helo', ['message' => 'MyTable List','data' => $data]); 25 } 26 27 public function hi(Request $request) 28 { 29 $res = "you typed: " . $request->input('str'); 30 return view('hi', ['message' => $res]); 31 } 32}

php

1resources/views/hi.blade.php 2 3<!doctype html> 4<html> 5<head> 6 <title>Sample</title> 7 <style> 8 body { color:gray; } 9 h1 { font-size:18pt; font-weight:bold; } 10 </style> 11</head> 12<body> 13 <h1>Sample</h1> 14 <p><?php if(!empty($message)) echo $message; ?></p> 15 <form method="post" action="/hi"> 16 {{ csrf_field() }} 17 <input type="text" name="str"> 18 <input type="submit"> 19 </form> 20</body>

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

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

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

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

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

guest

回答1

0

ベストアンサー

いかに挿入でうまくいかないですか?
<form method="post" action="/hi">

<?php echo csrf_field(); ?>
<input type="text" name="str">

投稿2016/11/23 05:57

kaji

総合スコア648

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

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

kalon

2016/11/23 06:00

回答ありがとうございます。 MethodNotAllowedHttpException in RouteCollection.php line 218: というエラーが出るようになりました。この場合、どこに問題があることになるのでしょうか?
speed_star777

2016/11/23 06:32

web.phpの設定かと思います。 getメソッドしか許容していなかったりするとpostでアクセスしたときにそのようなエラーになります。
speed_star777

2016/11/23 06:32

5.1だとroute.phpだったかもしれません。
kaji

2016/11/23 06:44 編集

postのRouteが追加されてないということでしょうか。 app/Http/routes.phpに Route::post('/hi', 'HeloController@hi'); を追加でどうですか? 訂正ですがcsrf_fieldはこちらの方がシンプルかもしれません。 <form method="post" action="/hi"> {{ csrf_field() }} <input type="text" name="str">
kalon

2016/11/23 08:02 編集

>speed_star777さん ご回答ありがとうございます。本質問はgetで値を受け取ることで解決しました。しかしpostでの投稿について疑問が残っているので別のトピックで質問してみたいと思います。 >kajiさん app/Http/routes.phpに Route::post('/hi', 'HeloController@hi'); ではだめでした。 Route::get('/hi', 'HeloController@hi');のままにして、 hi.phpの <form method="post" action="/hi">を<form method="get" action="/hi">に変換したところ、入力された文字が表示されるようになりました。 別途、 <form method="post" action="/hi"> のままで、Route::post('/hi', 'HeloController@hi');にしてみたところMethodNotAllowedHttpException in RouteCollection.php line 218:というエラーが起きました。こちら別のトピックで質問したいと思います。 {{ csrf_field() }}につきましては、php artisan serveでブラウザから読み込んでいるものの、{{ csrf_field() }}と丸裸で文字が出てきてしまします。どうしたら{{ csrf_field() }}でいけるでしょうか?
kalon

2016/11/23 08:10

自己解決できたところがありました。 >{{ csrf_field() }}につきましては、php artisan serveでブラウザから読み込んでいるものの、{{ csrf_field() }}と丸裸で文字が出てきてしまします。どうしたら{{ csrf_field() }}でいけるでしょうか? {{ csrf_field() }}関数が丸裸で出てきてしまう原因はファイル名がhi.phpであり、hi.blade.phpでなかったことに原因がありました。.blade.phpに変換したところビューからは見えなくなりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問