初学者です。エラーの原因がわかりません。
Laravelの勉強でMAMPをつかって参考書のとおりに進めたところ、index.blade.phpで@csrfを入力してからThe GET method is not supported for this route. Supported methods: POST.というエラーが発生して原因がわかりません。
参考書ですとMAMPを使用していないのでもしかしたらMAMPで初期設定で何かしら必要なのではないかと思い、調べながら行いましたが解決しませんでしたので質問させていただきました。
あまり内容が理解できないまま進めている節もあるので、もしよろしければわかりやすく解説していただけると助かります。
参考にした本は[PHPフレームワーク Laravel入門 第2版]です。
発生している問題・エラーメッセージ
The GET method is not supported for this route. Supported methods: POST.
該当のソースコード
[web.php] <?php /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::post('hello','HelloController@post'); ?> [index.blade.php] <html> <head> <title>Hello/Index</title> <style> body {font-size:16pt; color:#999; } h1 {font-size:50pt; text-align:right; color:#f6f6f6; margin:-20px 0px -30px 0px; letter-spacing:-4pt; } </style> </head> <body> <h1>Blade/Index</h1> @if ($msg != '') <p>こんにちは、{{$msg}}さん。</p> @else <p>何か書いて下さい。</p> @endif <form method="POST" action="/hello"> @csrf <input type="text" name="msg"> <input type="submit"> </form> </body> </html> [HelloController.php] <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; class HelloController extends Controller { public function index(){ return view('hello.index', ['msg'=>'']); } public function post(Request $request){ return view('hello.index', ['msg'=>$request->msg]); } } ?>
試したこと
・MYSQLでsample-project utf8mb4_unicode_ciでデータベースの作成
・.envでApp_NAME、DB_PORT、DB_DATABASE、DATA_PASSWORDを変更。DATA_PASSWORDの下にDB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sockを追加。
・Kernel.phpで\App\Http\Middleware\VerifyCsrfToken::class,をコメントアウト化
・キャッシュのクリア
補足情報(FW/ツールのバージョンなど)
Laravel 6.20.18
composer 1.9.1
MAMP 7.4.12
Macbook pro
回答1件
あなたの回答
tips
プレビュー