Laravel:MethodNotAllowedHttpException

时间:2017-09-15 09:51:08

标签: php laravel laravel-5 routes

所以我试图制作表格帖子,由于某种原因,这个错误不断出现,只有在这种形式发生时,我才会以同样的方式做我的表格。

我的表格是:

<form action="{{route('email')}}" >
  <div class="w3-section">
  <label>Nome</label>
  <input class="w3-input w3-border" type="text" name="Name" required>
  </div>
  <div class="w3-section">
  <label>Email</label>
  <input class="w3-input w3-border" type="text" name="Email" required>
  </div>
  <div class="w3-section">
  <label>Mensagem</label>
  <input class="w3-input w3-border" type="text" name="Message" required>
  </div>
  <input type="hidden" name="_token"  value="{{ csrf_token() }}" >
  <button type="submit" class="w3-button w3-black w3-margin-bottom"><i class="fa fa-paper-plane w3-margin-right"></i>Submeter</button>
</form>

和web.php:

Route::post('/email', [
  'uses' => 'FrontController@postEmail', 'as'=>'email'
]);

和FrontController中的conde:

 public function postEmail(Request $request){
    $this->validate($request,[
        'Name' => 'required|',
        'Email' => 'required|',
        'Message' => 'required'
    ]);
    return redirect()->route('levadas');
 }

2 个答案:

答案 0 :(得分:1)

表单方法必须添加为post.if你没有提到方法然后它将被视为GET请求

    <form action="{{route('email')}}" method="POST">

答案 1 :(得分:0)

  • 将“POST”方法添加到表单中。
  • 您还应该在表单中添加{{ csrf_field() }}作为字段。与其他答案一起。

为什么不使用Laravel的{{ Form::open() }}

示例:

{{ Form::open([
    'role' => 'form', 
    'url' => route('email'),    
    'method' => 'post',
]) }}

{{--- Your fields here ---}}

{{ Form::submit('Send', ['class' => 'form-submit', 'id' => 'form-submit']) }}

{{ Form::close() }}

供参考,请检查https://laravelcollective.com/docs/5.4/html