我在laravel 5.4.22中构建一个基本表单,但未提交,当我单击“提交”时,它停留在同一页面上,只是将url更改为其他内容
我用这条路线

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


这是我使用的控制器

   `<?php

      namespace App\Http\Controllers;

       use Illuminate\Http\Request;

       class MessagesController extends Controller
    {
        public function submit(Request $request){
         this->validate($request, [
              'name' => 'required',
              'email' =>'required'
               ]);
                 return 'SUCCESS';
                    }
                   }; `


这是我的联系表格

            @extends('layouts.app')

             @section('content')
            <H1>Contact</H1>
{!! Form::open(['action'=>'MessagesController@submit','method'=>'post']) !!}
          <div class="form-group">
            {{Form::label('name', 'Name')}}
            {{Form::text('name', '',  ['class' => 'awesome form-control', 'placeholder' => 'Enter name'] )}}
             </div>
          <div class="form-group">
            {{Form::label('email', 'E-Mail Address')}}
        {{Form::text('email', '',  ['class' => 'awesome form-control', 'placeholder' => 'Enter Email id'])}}
         </div>
        <div class="form-group">
          {{Form::label('messages', 'Message')}}
        {{Form::textarea('message', '', ['class' => 'form-control', 'placeholder' => 'Enter your message here'])}}
        </div>
         <div>
        {{Form::submit('Submit', ['class'=> 'btn btn-primary'])}}
         </div>
        {!! Form::close() !!}
      @endsection


,这是我连接其他内容的主页

      <!DOCTYPE html>
    <html>
    <head>
     <title>Dradz</title>
     <link rel="stylesheet" type="text/css" href="/css/app.css">
    </head>
    <body>

    @include('inc.navbar')
    <div class="container">
      @if(Request::is('/'))
      @include('inc.showcase')
      @endif
      <div class="row">
        <div class="col-md-8 col-lg-8">
       @include('inc.messages')
      @yield('content')
   </div>
       <div class="col-md-4 col-lg-4">
            @include('inc.sidebar')
           @show
         </div>
    </div>
   </div>
 <footer id="footer" class="text-center">
        <p>Copyright 2017 &copy; Dradz</p>
       </footer>
      </body>
         </html>

最佳答案

尝试在网址的开头添加斜杠并将方法设置为“ POST”

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

我也建议您为所有路线命名,例如:
Route::post('/contact/submit', 'MessagesController@submit')->name('messages.submit');

然后您可以在表格中使用它:
{!! Form::open(['route' => 'messages.submit', 'method'=>'POST']) !!}

09-17 17:15
查看更多