Laravel:POST - > Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException

时间:2018-03-27 17:31:26

标签: php laravel post csrf

其他程序员。

每当我尝试发布某些内容时,都会收到此错误。

enter image description here

create.blade.php文件:       

    <h1>Publish a Post</h1>

    <hr>

    <form method="POST" action="/posts">

      {{ csrf_field() }}

      <div class="form-group">
        <label for="title">Title</label>
        <input type="text" class="form-control" id="title" name="title">
      </div>

      <div class="form-group">
        <label for="body">Body</label>
        <textarea type="text" class="form-control" id="body" name="body"></textarea>
      </div>

      <button type="submit" class="btn btn-primary">Publish</button>

    </form>

  </div>

web.php文件:

Route::get('/', 'PostController@index');

Route::get('/posts/create', 'PostController@create');

Route::get('/posts', 'PostController@store');

PostController.php文件:

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

    public function store()
    {
      dd(request()->all());
    }

数据库架构:

public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->increments('id');
        $table->string('title');
        $table->text('body');
        $table->timestamps();
    });
}

我真的很感激任何想法,我做错了什么或如何解决这个问题。

2 个答案:

答案 0 :(得分:3)

您的路线中未定义POST。将您的::get更新为您的终端的::post

Route::post('/posts', 'PostController@store');

有关详细信息:https://laravel.com/docs/5.6/routing#basic-routing

答案 1 :(得分:0)

您可以向控制器注册资源丰富的路线:

Route::resource('/posts', 'PostController');

有关详细信息:https://laravel.com/docs/5.6/controllers