前提・実現したいこと
phpとslimを使用してフォーム処理のスクリプトを作りたいんですが、入力フィールドに値を入力するとエラーが出ます。
発生している問題・エラーメッセージ
Fatal error: Uncaught Slim\Exception\HttpMethodNotAllowedException: Method not allowed. Must be one of: GET in C:\Users\Santa\my_slim\vendor\slim\slim\Slim\Middleware\RoutingMiddleware.php:96 Stack trace: #0 C:\Users\Santa\my_slim\vendor\slim\slim\Slim\Routing\RouteRunner.php(72): Slim\Middleware\RoutingMiddleware->performRouting(Object(Slim\Psr7\Request)) #1 C:\Users\Santa\my_slim\vendor\slim\twig-view\src\TwigMiddleware.php(125): Slim\Routing\RouteRunner->handle(Object(Slim\Psr7\Request)) #2 C:\Users\Santa\my_slim\vendor\slim\slim\Slim\MiddlewareDispatcher.php(140): Slim\Views\TwigMiddleware->process(Object(Slim\Psr7\Request), Object(Slim\Routing\RouteRunner)) #3 C:\Users\Santa\my_slim\vendor\slim\slim\Slim\MiddlewareDispatcher.php(81): class@anonymous->handle(Object(Slim\Psr7\Request)) #4 C:\Users\Santa\my_slim\vendor\slim\slim\Slim\App.php(215): Slim\MiddlewareDispatcher->handle(Object(Slim\Psr7\Request)) #5 C:\Users\Santa\my_slim\vendor\slim\slim\Slim\App.php(199): Slim\App->handle(Object(Slim\Psr7\Request)) #6 C:\Us in C:\Users\Santa\my_slim\vendor\slim\slim\Slim\Middleware\RoutingMiddleware.php on line 96 ``` ### 該当のソースコード ```php <?php use \Psr\Http\Message\ServerRequestInterface as Request; use \Psr\Http\Message\ResponseInterface as Response; use \DI\Container; use \Slim\Views\Twig; use \Slim\Views\TwigExtension; use \Slim\Views\TwigMiddleware; use \Slim\Factory\AppFactory; use \Slim\Middleware\RoutingMiddleware; require __DIR__ . '/../vendor/autoload.php'; // DI Container $container =new Container(); //create App AppFactory::setContainer($container); $app = AppFactory::create(); //set view in container $container->set('view',function(){ return Twig::create('./templates',['cache'=>'./templates/cache']); }); // Add Twig-View Middleware $app->add(TwigMiddleware::createFromContainer($app)); //'/'route $app->get('/',function ($request, $response) { return $this->get('view')->render($response,'index.html',[ 'message' => 'please type...', 'class' =>' ', ]); }); $app->post (' /',function ($request, $response) { $body = $request->getParsedBody(); $msg = $body['msg']; return $this->get('view')->render($response,'index.html', [ 'message' => 'you typed:' . $msg . '.', 'msg' => $msg, 'class' => 'alert alert-primary', ]); }); $app->run(); ``` ```html <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Index</title> <link rel="stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.css"> </head> <body class="container"> <h1 class="display-4">Index</h1> <p class="{{class}}">{{ message }}</p> <form action="/" method="post"> <input type="text" name="msg" value="{{msg}}"> <input type="submit"> </form> </body> </html> ``` ### 試したこと templatesの場所を変えたりしたのですがあまり分かりませんでした。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー