2017-08-05 91 views
0

我得到MethodNotAllowedHttpException錯誤在我的Laravel 5.2項目,而我正在添加添加評論部分。Laravel 5.2 MethodNotAllowedHttpException

這裏是我的路線:

Route::post('/posts/{post}/comments', '[email protected]'); 

這裏是我的CommentsController:

<?php 

namespace App\Http\Controllers; 

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

class CommentsController extends Controller 
{ 
    public function store(Post $post) 
    { 
     Comment::create([ 
      'body' => request('body'), 
      'post_id' => $post->id 
      ]); 

     return back(); 
    } 
} 

,這裏是我的觀點:

@extends('layouts.master') 
@section('content') 
<div class="col-sm-8 blog-main"> 
    <h1>{{ $post->title }}</h1> 
    {{ $post->body }} 
    <hr> 
    <h5>Comments</h5> 
    <div class="comments"> 
     <ul class="list-group"> 
      @foreach ($post->comments as $comment) 
      <li class="list-group-item"> 
      <strong> 
       {{ $comment->created_at->diffForHumans() }}: &nbsp; 
      </strong> 
      {{ $comment->body }} 
      </li> 
      @endforeach 
     </ul> 
    </div> 
    <hr> 
    <!-- Add Comment --> 
    <div class="card"> 
     <div class="card-block"> 
      <form method="POST" action="/blog/public/posts/{{ $post->id }}/comments" > 
       <div class="form-group"> 
        <textarea name="body" placeholder="Your Comment" class="form-control"></textarea> 
       </div> 
       <div class="form-group"> 
        <button type="submit" class="btn btn-primary">Add Comment</button> 
       </div> 
      </form> 
     </div> 
    </div> 
</div> 
@endsection 

變量$post$comment成功地傳遞給查看檢索內容和評論工作正常,但是當我嘗試提交新評論時,我收到了MethodNotAllowedHttpException

+0

您可以發佈您的路線的部分文件處理這種形式嗎? – louisfischer

回答

1
  1. 提供您的航線名稱

    Route::post('/posts/{post}/comments', '[email protected]')->name('comments.create'); 
    
  2. 添加CSRF令牌和使用輔助方法route()來訪問你的形式

    <form method="POST" action="{{ route('comments.create', ['post' => $post->id]) }}" > 
        {{ csrf_field() }} 
        <div class="form-group"> 
         <textarea name="body" placeholder="Your Comment" class="form-control"></textarea> 
        </div> 
        <div class="form-group"> 
         <button type="submit" class="btn btn-primary">Add Comment</button> 
        </div> 
    </form> 
    
  3. 路線更改函數簽名

    public function store($post) 
    { 
        Comment::create([ 
         'body' => request('body'), 
         'post_id' => $post 
        ]); 
    
        return back(); 
    } 
    
+0

我做了這個,但仍然是同樣的問題。 –

+0

請執行'composer dump-autoload',然後再試一次 – linktoahref

+0

仍然是一樣的。 –

1

表單動作應該是這樣的

/posts/{{ $post->id }}/comments 
相關問題