Php Laravel表单验证不需要';好像不行
我正在拉雷维尔制作我的第一张表格,表格的生成工作正在进行。只是store函数似乎盲目地将用户返回到与表单验证结果无关的联系人页面 因此,如果发布的电子邮件地址不是电子邮件,而是随机字符串,我仍然会返回到/contact页面,并向视图发送感谢消息 我的控制器如下所示: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
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类中使用哪种方法进行验证?