【问题标题】:MethodNotAllowedHttpException form errorMethodNotAllowedHttpException 表单错误
【发布时间】:2017-11-23 14:35:36
【问题描述】:

我在 Laravel 中创建了一个表单,所以这里有以下文件: 某人应该提交一些详细信息的表格, contact.blade.php:

@extends('layouts.layout')


@section('content')

    <main role="main">

      <section class="jumbotron text-center">
        <div class="container">
          <h1 class="jumbotron-heading">Laravel demo</h1>

          <p class="lead text-muted">Please fill the form</p>
          @if(count($errors) > 0)
            @foreach($errors->all() as $error)
              <div class="alert alert-danger">
               {{$error}}
              </div>

            @endforeach
          @endif

        </div>
      </section>

      <div class="album text-muted">
        <div class="container">


          {!! Form::open(['url' => 'contact/submit']) !!}
          {!! csrf_field() !!}
            <div class="form-group">
            {{Form::label('name', 'Name') }}
            {{Form::text('name', 'Enter Name', ['class'=> 'form-control'])}}
            </div>
            <div class="form-group">
            {{Form::label('email', 'E-Mail Address') }}
            {{Form::text('email', 'example@gmail.com', ['class'=> 'form-control'])}}
            </div>
            <div class="form-group">
            {{Form::label('message', 'Enter Message') }}
            {{Form::textarea('message', 'Enter Message', ['class'=> 'form-control'])}}
            </div>
            <div>
            {{Form::submit('Submit', ['class'=> 'btn btn-primary'])}}
            </div>

          {!! Form::close() !!}

        </div>
      </div>

    </main>

@endsection

控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class MessageController extends Controller
{
    public function submit(Request $request){

      $this->validate($request, [
          'name' => 'required',
          'email' => 'required'
      ]);

      return 'SUCCESS';
    }
}

* 在 Routes web.php 文件中,我已将该方法作为帖子包含在内:

Route::get('/', function () {
    return view('home');
});

Route::get('/contact', function () {
    return view('contact');
});

Route::post('/contact/submit', 'MessageController@submit');

错误消息是“RouteCollection.php (line 251)”。在此处搜索类似情况后,通常会在您使用与指定路由方法不同的方法时出现问题。我正在使用 POST 方法提交详细信息,但我仍然不明白为什么会得到这个。 任何帮助,将不胜感激。

【问题讨论】:

  • 浏览器控制台显示什么?是否使用 POST,是否发送到正确的端点?
  • 是页面联系人/提交有问题。如果我在 /contact 页面中按下表单的提交按钮,它会返回成功,我还没有完成该方法,所以这可能是原因!抱歉,我是 Laravel 的新手
  • 我不关注。提交表单时,您是否在浏览器控制台中查看过网络请求?
  • 状态为200,通过元素检查控制台没有错误。
  • 您将需要发布更多错误

标签: php forms laravel


【解决方案1】:

而不是这个 {!! Form::open(['url' => '联系/提交']) !!}

试试这个。

{!! Form::open(['method'=>'POST','action'=>'MessageController@submit']) !!}

【讨论】:

    【解决方案2】:

    将反斜杠添加到表单的 url,如下所示:

    {!! Form::open(['url' => '/contact/submit']) !!}
    

    【讨论】:

    • 尝试传递完整的网址:http://site.dev/contact/submit 因为您的路由对我来说看起来不错
    • 问题依旧
    猜你喜欢
    • 2018-11-25
    • 2015-08-26
    • 1970-01-01
    • 2018-08-07
    • 2017-09-23
    • 2019-03-25
    • 2018-10-08
    • 2017-09-21
    • 1970-01-01
    相关资源
    最近更新 更多