laravel中的post方法给出MethodNotAllowedHttpException

时间:2018-02-10 09:44:53

标签: laravel

Laravel中的post方法给出MethodNotAllowedHttpException

Html代码

<form action="newslatter" method="post">
<input type="text" name="name">
    <br>
    <br>
<input type="email"name="email">
<br>
<br>
<input type="submit">

和控制器代码

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class newsletter extends Controller
{
public function store(Request $request)
{
 return $request -> name .'   '. $request -> email;
}

和路线

Route::POST('Newslatter','newsletter@store');

我的代码有什么问题?

错误的图片

screenshot from err

3 个答案:

答案 0 :(得分:6)

将路线中的Newslatter更改为newslatter以使其正常工作:

Route::post('newslatter', 'newsletter@store');

另外,在表单中添加CSRF field

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

Laravel 5.6+中:

<form action="newslatter" method="post">
    @csrf

答案 1 :(得分:3)

我认为这个问题是因为

而发生的
<form action="newslatter" method="post">

请尝试

<form action="{{ route('route-name') }}"> metho="post">
{{ csrf_field() }}

Route::post('/newslatter', 'ControllerName@methodName')->name('route-name');

答案 2 :(得分:0)

为什么不使用laravel食谱,他们很酷

{{ Form::model($role, array('route' => array('roles.update', $role->id), 'method' => 'PUT', 'class'=>"form-horizontal form-label-left","novalidate"=>'true')) }}

声明从后端传递$ roles变量的表单并为您生成csrf_field(解决上述问题)。

也在表单

{ Form::text('name', null, array('class' => 'form-control  col-md-7 col-xs-12','required'=>'required','id'=>"name")) }}

在传递的$ user对象中显示name属性(避免对html进行长度空状态检查)