2017-06-23 56 views
0

我只是想利用數據庫雄辯插入標題和正文和MethodNotAllowedHttpException似乎不會讓我這樣做的原因是錯誤MethodNotAllowedHttpException這不會讓我插入數據

這裏是控制器

public function store(Request $request) 
    { 

     $this->validate($request, array(
       'title' => 'required|max:255', 
       'body' => 'required' 
      )); 

     $post = new Post; 

     $post->title = $request->title; 
     $post->body = $request->body; 

     $post->save(); 

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

    } 

這是我的看法create.blade.php

<form action="post.store" method="POST"> 
       <div class="form-group"> 
        <label for="title">Title</label> 
        <input type="text" class="form-control" name="title" placeholder="Enter title"> 
       </div> 
       <div class="form-group"> 
        <label for="body">Body</label> 
        <textarea class="form-control" name="body" rows="3"></textarea> 
       </div> 
       <div class="form-group"> 

        <input type="submit" class="btn btn-success btn pull-right" value="post"> 
       </div> 
</form> 
+0

你有正確的路由設置嗎?它可能不允許Post請求。 – hdifen

+0

你也可以顯示你的路線@Lestah – JYoThI

+0

[laravel throwing MethodNotAllowedHttpException]可能的重複(https://stackoverflow.com/q/19760585/6521116) –

回答

2

我假設你正在使用的資源路徑。

我認爲這<form action="post.store" method="POST">應該<form action="{{ route('post.store') }}" method="POST">並使用這個{{ csrf_field() }}裏面的形式否則你會得到tokenmismatch錯誤。

<form action="{{ route('posts.store') }}" method="POST"> 
{{ csrf_field() }} 
       <div class="form-group"> 
        <label for="title">Title</label> 
        <input type="text" class="form-control" name="title" placeholder="Enter title"> 
       </div> 
       <div class="form-group"> 
        <label for="body">Body</label> 
        <textarea class="form-control" name="body" rows="3"></textarea> 
       </div> 
       <div class="form-group"> 

        <input type="submit" class="btn btn-success btn pull-right" value="post"> 
       </div> 
</form> 
+0

是的,你的權利即時使用資源路線我試過{{route( 'post.store')}}並將{{csrf_field()}}放入表單中,並且我得到一個新錯誤ErrorException Route [post.store]未定義。 – Lestah

+0

在控制檯中使用命令'php artisan route:list'並檢查天氣'post.store'是否正確 –

+0

是的,我有一個路由名稱posts.store – Lestah

0

您可以使用命令php artisan route:list和列名稱你會看到路線的名字,你就可以通過{{ route('routename') }}

例鑑於打電話: 在路由表顯示posts.store,所以你將在查看通話{{ route('posts.store') }}

我想你可以通過上述路線圖稱不正確途徑是posts.show但插入時,你叫post.store也許posts.store

+0

我總是使用PHP工匠路線:列表在我的終端檢查路線名稱我確定posts.store即時看我的路線清單 – Lestah

+0

但我看到你的create.blade.php是'post.store'不是'職位就像你提到的那樣。應該使用雙括號'{{route('posts.store')}}' – Sovary

0

在表單中使用動作{{ route('posts.store') }}