2016-12-08 3 views
1

laravelを使用して自分のフォームをデータベースに投稿する際に問題が発生しました。送信をクリックすると、RouteCollection.php行218にエラーMethodNotAllowedHttpExceptionが表示されます。以下に、HTMLコードを示します。私は以下のようにルートを定義しており、Store関数を含むPostControllerも貼り付けています。RouteCollection.php行218のMethodNotAllowedHttpException:Laravel

<div class="blog-page blog-content-2"> 
     <div class="row"> 
      <div class="col-lg-9"> 
       <div class="blog-single-content bordered blog-container"> 
        <div class="blog-comments"> 
         <h3 class="sbold blog-comments-title">Leave A Comment</h3> 
         <form method="post" action="store"> 
          <div class="form-group"> 
           <input name="title" type="text" placeholder="Your Name" class="form-control c-square"> </div>      
          <div class="form-group"> 
           <textarea name="body" rows="8" name="message" placeholder="Write comment here ..." class="form-control c-square"></textarea> 
          </div> 
          <div class="form-group"> 
           <button type="submit" class="btn blue uppercase btn-md sbold btn-block">Submit</button> 
          </div> 
         </form> 
        </div> 
       </div>  
      </div> 
     </div> 
    </div> 

これは私のルートページ

Route::resource('posts', 'PostController'); 

これは、データベースにデータを保存するために仮定された店舗の機能が含まれているのPostControllerです。

public function store(Request $request) 
     { 
      //Validate the data 
      $this->Validate($request, array(
       'title'=>'required|max:255', 
       'body'=>'required' 
       )); 

      //Store the data into the database 
      $post = new Post; 
      $post->title = $request->get('title'); 
      $post->body = $request->get('body'); 
      $post->save(); 

      //redirect to another page 
      return redirect()->route('posts.show', $post->id); 
     } 
+0

あなたの '' 'のroutes.phpを投稿することができます'' '? – aceraven777

+0

Route :: post( 'store'、 'PostController @ store') – rad11

答えて

0

問題はここにある:

<form method="post" action="store"> 

あなたがここにpostsを置く必要があります。

<form method="post" action="posts"> 

あなたはphp artisan route:listコマンドを使用してRoute::resource()で作成したすべてのルートを見ることができます。ここでは、posts.storeルート用に作成されたURIを参照する必要があります。

また、あなたはあなたのフォームにCSRF tokenを追加する必要があります。

<form method="post" action="posts"> 
    {{ csrf_field() }} 
1

<form method="post" action="store">は、あなたが持っていないパスstoreにあなたをお送りします、あなたのフォームは、このように、同じURLに投稿する必要があります。

<form method="post" action="."> 
+0

こんにちは、ありがとうございます。私はlaravelがデータベースに投稿するために私の店舗機能を呼び出すべきであることをどのように知っているのでしょうか? laravelにprocessInformationという別のプロセス関数を実行させたいのですが?私は何を行動に入れるべきですか?ありがとうございました – Desmond

+0

[docs](https://laravel.com/docs/5.3/controllers#resource-controllers)を参照してください。基本的に 'Route :: resource( 'posts'、 'PostController')'を使うことで、ドキュメント内のテーブルに記述されているすべてのルートを生成します。たとえば別のルートを追加する場合は、 [Basic Controllers](https://laravel.com/docs/5.3/controllers#basic-controllers)の手順に従ってください。 'Route :: get( 'posts/processInformation'、 'PostController @ processInformation')'を実行し、 'Route :: resource(...)'の前にそれを入れてください。 – Unnawut

0

使用

<form method="post" action="posts"> 
関連する問題