表单验证
创建路由
Route::get('test','VerController@index');
Route::post('tosubmit','VerController@tosubmit');
在控制器中编辑代码
class VerController extends Controller
{
//表单页面
public function index()
{
return view('from.from');
}
//表单提交验证
//这种是用自带的Request进行验证
// public function tosubmit(Request $request)
// {
// $this->validate($request, [
// 'title'=>'required',
// 'content'=>'required|min:10'
// ]);
// return 'success';
// }
//这种是用自己写的Request,用php artisan make:request FromRequest生成
public function tosubmit(Requests\FromRequest $request)
{
return 'success';
}
}
生成自定义的Request
php artisan make:request FromRequest
FromRequest
/**
* 判断用户是否有权限进行此请求。
*
* @return bool
*/
public function authorize()
{
//别问为什么,就是要返回true
return true;
}
/**
* 获取适用于请求的验证规则。
*
* @return array
*/
public function rules()
{
return [
//这里写规则
'title'=>'required',
'content'=>'required|min:10'
];
}
/**
* 获取已定义的验证规则的错误消息。
*
* @return array
*/
public function messages()
{
return [
'title.required' => 'A title is required',
'content.required' => 'A message is required',
];
}
第二种
直接在Controller
里面定义规则和错误信息
public function yanzhen()
{
$input = Input::except('_token');
$relus = [
//规则
'name'=>'required|min:5'
];
$message = [
//错误信息
'name.required' => '不能为空',
'name.min' => '最少5个字符'
];
//这里参数必须按照顺序(验证的内容,规则,错误信息)
$vail = Validator::make($input,$relus,$message);
if ($vail->passes()){
return '通过验证';
} else {
//这里传入的是变量
return back()->withErrors($vail);
}
}
视图
<body>
<div class="container">
@if(count($errors)>0)
@if(is_object($errors))
{ {--这里一定要获取$error->all()--} }
@foreach($errors->all() as $error)
{ { $error } }
@endforeach
@endif
@endif
{ { Form::open(['url'=>url("yanzhen")]) } }
{ { Form::text('name') } }
{ { Form::submit('提交') } }
{ { Form::close() } }
</div>
</body>