Php Laravel表单验证不需要';好像不行

Php Laravel表单验证不需要';好像不行,php,forms,laravel,laravel-5,laravel-validation,Php,Forms,Laravel,Laravel 5,Laravel Validation,我正在拉雷维尔制作我的第一张表格,表格的生成工作正在进行。只是store函数似乎盲目地将用户返回到与表单验证结果无关的联系人页面 因此,如果发布的电子邮件地址不是电子邮件,而是随机字符串,我仍然会返回到/contact页面,并向视图发送感谢消息 我的控制器如下所示: namespace App\Http\Controllers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\View; use Il

我正在拉雷维尔制作我的第一张表格,表格的生成工作正在进行。只是store函数似乎盲目地将用户返回到与表单验证结果无关的联系人页面

因此,如果发布的电子邮件地址不是电子邮件,而是随机字符串,我仍然会返回到/contact页面,并向视图发送感谢消息

我的控制器如下所示:

namespace App\Http\Controllers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\DB;

use App\Http\Requests\ContactFormRequest;

class ContactController extends Controller {

  public function create(){
      return view('contact');
  }

  public function store(ContactFormRequest  $request) {

      return \Redirect::route('contact')
        ->with('message', 'Thanks for contacting us!');

  }
}
namespace App\Http\Requests;
use Illuminate\Http\Request;

class ContactFormRequest extends Request {
  public function authorize() {
    return true;    // don't need to be registered to run form so true
  }
  public function rules() {
    return [
        'email' => 'required|email',
    ];
  }
}
  <ul>
    @foreach($errors->all() as $error)
      <li>{{ $error }}</li>
    @endforeach
   </ul>
   @if(Session::has('message'))
      <div class="alert alert-info">
        {{Session::get('message')}}
      </div>
   @endif


 {!! Form::open(array('route' => 'contact_store', 'id' => 'contactCallMeForm')) !!}         
 {!! Form::label('Your E-mail Address') !!}
 {!! Form::text('email', null,  array('required',  'class'=>'form-control',  'placeholder'=>'Your e-mail address')) !!}
 {!! Form::submit('Contact Us!',  array('class'=>'btn btn-primary')) !!} 
 {!! Form::close() !!}
表单处理程序如下所示:

namespace App\Http\Controllers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\DB;

use App\Http\Requests\ContactFormRequest;

class ContactController extends Controller {

  public function create(){
      return view('contact');
  }

  public function store(ContactFormRequest  $request) {

      return \Redirect::route('contact')
        ->with('message', 'Thanks for contacting us!');

  }
}
namespace App\Http\Requests;
use Illuminate\Http\Request;

class ContactFormRequest extends Request {
  public function authorize() {
    return true;    // don't need to be registered to run form so true
  }
  public function rules() {
    return [
        'email' => 'required|email',
    ];
  }
}
  <ul>
    @foreach($errors->all() as $error)
      <li>{{ $error }}</li>
    @endforeach
   </ul>
   @if(Session::has('message'))
      <div class="alert alert-info">
        {{Session::get('message')}}
      </div>
   @endif


 {!! Form::open(array('route' => 'contact_store', 'id' => 'contactCallMeForm')) !!}         
 {!! Form::label('Your E-mail Address') !!}
 {!! Form::text('email', null,  array('required',  'class'=>'form-control',  'placeholder'=>'Your e-mail address')) !!}
 {!! Form::submit('Contact Us!',  array('class'=>'btn btn-primary')) !!} 
 {!! Form::close() !!}
这由以下路径控制

if (config('app.tan_site_page_contact')===true){
    Route::get('/contact', ['as' => 'contact', 'uses' => 'ContactController@create']);
    Route::post('/contact', ['as' => 'contact_store', 'uses' => 'ContactController@store']);
});
形式如下:

namespace App\Http\Controllers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\DB;

use App\Http\Requests\ContactFormRequest;

class ContactController extends Controller {

  public function create(){
      return view('contact');
  }

  public function store(ContactFormRequest  $request) {

      return \Redirect::route('contact')
        ->with('message', 'Thanks for contacting us!');

  }
}
namespace App\Http\Requests;
use Illuminate\Http\Request;

class ContactFormRequest extends Request {
  public function authorize() {
    return true;    // don't need to be registered to run form so true
  }
  public function rules() {
    return [
        'email' => 'required|email',
    ];
  }
}
  <ul>
    @foreach($errors->all() as $error)
      <li>{{ $error }}</li>
    @endforeach
   </ul>
   @if(Session::has('message'))
      <div class="alert alert-info">
        {{Session::get('message')}}
      </div>
   @endif


 {!! Form::open(array('route' => 'contact_store', 'id' => 'contactCallMeForm')) !!}         
 {!! Form::label('Your E-mail Address') !!}
 {!! Form::text('email', null,  array('required',  'class'=>'form-control',  'placeholder'=>'Your e-mail address')) !!}
 {!! Form::submit('Contact Us!',  array('class'=>'btn btn-primary')) !!} 
 {!! Form::close() !!}
    @foreach($errors->all()作为$error)
  • {{$error}}
  • @endforeach
@if(会话::has('message')) {{Session::get('message')} @恩迪夫 {!!Form::open(数组('route'=>'contact\u store','id'=>'contactCallMeForm')) {!!Form::label('您的电子邮件地址')!!} {!!Form::text('email',null,数组('required','class'=>'Form-control','placeholder'=>'您的电子邮件地址')) {!!Form::submit('Contact-Us!',array('class'=>'btn-btn-primary')) {!!Form::close()!!}
表单html看起来不错,带有标记和有效的url

<form method="POST" action="http://localhost/contact" accept-charset="UTF-8" id="contactCallMeForm" novalidate="">
    <input name="_token" type="hidden" value="VNHchLZhfsXadVZXCZWHGdAuJ4zgmO6cDJIGhR59">
    <label for="Your E-mail Address">Your E-mail Address</label>
    <input required="required" class="form-control" placeholder="Your e-mail address" name="email" type="text">
    <input class="btn btn-primary" type="submit" value="Contact Us!">
</form>

您的电子邮件地址

这里的问题是您的
ContactFormRequest


您从无效的
请求
类扩展它。您可以从
\illumb\Http\Request
类扩展它,但您应该从
\illumb\Foundation\Http\FormRequest
(或
\App\Http\Requests\Request
类)扩展它,同时添加路线。请添加
联系人
联系人商店
路线的声明。现已更新@Kyslik@salamza为您更新如果我将其更改为这些类中的任何一个,则我会发现类“App\Http\Requests\Request”未找到错误。我需要在app.php中添加一些东西来设置它们吗?@AdamJones如果你没有这个类,只需从
\lightlight\Foundation\Http\FormRequest
类扩展,或者你可以创建一个-就像感谢你@Marcin Nabiałek!这个链接成功了,我是在扩展“请求”,而不是“FormRequest”!在\App\Http\Requests\Request类中使用哪种方法进行验证?