2016-11-14 4 views
0

私はlaravelに新しく、ブログの簡単なアプリケーションを作成しようとしていましたが、投稿の詳細をデータベースに保存したかったのです。私は自分のデータベースとテーブルもlaravelコマンドを使ってセットアップしています。 iはデータベースにデータを格納するために、次のフォームを作成した:laravelを使用してフォームを送信する際にMethodNotAllowedHttpExceptionが発生しましたか?

@extends('main') 

@section('title','| Create Post') 
@endsection 

@section('content') 
<div class="row"> 
    <div class="col-md-8 col-md-offset-2"> 
     <h1>Create New Post</h1> 
     <hr/> 
     <form action="store" method="POST"> 
      <div class="form-group"> 
       <div class="form-group"> 
        <label name="title">Title:</label> 
        <input id="title" name="title" class="form-control"> 
       </div> 
       <div class="form-group"> 
        <label name="body">Post Body:</label> 
        <textarea id="body" name="body" class="form-control"></textarea> 
       </div> 
       <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
       <input type="hidden" name="_method" value="POST"> 
       <input type="submit" class="btn btn-success btn-lg btn-block" value="Save Post"> 
      </div> 
     </form> 
    </div> 
</div> 
@endsection 

次のように私が要求を提出するこのフォームのルート・ルールを作成した:

のPostControllerはここですべてのコントローラである
Route::resource('posts','PostController'); 

を必要なリソースメソッドは

<?php namespace App\Http\Controllers; 

use App\Http\Requests; 
use App\Http\Controllers\Controller; 

use App\Post; 
use Illuminate\Http\Request; 

class PostController extends Controller { 

public function index() 
{ 
    // 
} 

public function create() 
{ 
    return view('posts.create'); 
} 

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

    //store in the database 
    $post = new Post; 
    $post->title = $request->title; 
    $post->body = $request->body; 
    $post->save(); 

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

public function show($id) 
{ 
    // 
} 

public function edit($id) 
{ 
    // 
} 

public function update($id) 
{ 
    // 
} 

public function destroy($id) 
{ 
    // 
} 

} 

として処理およびデータ保存用に実装されている私持っているにもなりますコマンドプロンプトを使用して、私のルートをダウンリスト私は次の出力を受け取ります:

App \ Http \ Controllers \ PagesController @ getIndex | | | | GET |ヘッド|投稿| posts.index | App \ Http \ Controllers \ PostController @インデックス| | | | GET |ヘッド|投稿/作成| posts.create |アプリケーション\ Http \ Controllers \ PostController @ create | | | | POST |投稿|ポストストア| App \ Http \ Controllers \ PostController @ストア| | | | GET |ヘッド|投稿/ {posts} | posts.show | App \ Http \ Controllers \ PostController @ show | | | | GET |ヘッド|投稿/ {posts} /編集| posts.edit | App \ Http \ Controllers \ PostController @編集| | | | | PUT |投稿/ {posts} | posts.update | App \ Http \ Controllers \ PostController @アップデート| | | |パッチ|投稿/ {posts} | | App \ Http \ Controllers \ PostController @アップデート| | | | |投稿/ {posts} | posts.destroy | App \ Http \ Controllers \ PostController @ destroy

詳細を保存するためのフォームを送信した後、MethodNotAllowedHttpExceptionが発生します。

+0

を'' –

答えて

0

この試してみてください:あなたの出力は、あなたの `` `create```方法は、ストアメソッドが` `` GET`見込ん `` `POST```受け入れることを私に語っ

@section('content') 
<div class="row"> 
    <div class="col-md-8 col-md-offset-2"> 
     <h1>Create New Post</h1> 
     <hr/> 
     <form action="{{ route('posts.store') }}" method="POST"> 
      <div class="form-group"> 
       <div class="form-group"> 
        <label name="title">Title:</label> 
        <input id="title" name="title" class="form-control"> 
       </div> 
       <div class="form-group"> 
        <label name="body">Post Body:</label> 
        <textarea id="body" name="body" class="form-control"></textarea> 
       </div> 
       <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
       <input type="hidden" name="_method" value="POST"> 
       <input type="submit" class="btn btn-success btn-lg btn-block" value="Save Post"> 
      </div> 
     </form> 
    </div> 
</div> 
@endsection 

Docs

+0

はいありがとう、有益な回答とドキュメント。 –

+0

お手伝いします:) –

関連する問題