Laravel 5.2验证错误未出现在刀片中我想在用户提供错误输入时在View页面中显示验证错误。当用户提供错误的输入时,它不会在数据库中保存任何内容。但是在用户视图页面中没有错误消息。如果有人发现错误,请帮帮我。这是控制器:public function saveUser(Request $request){
$this->validate($request,[
'name' => 'required|max:120',
'email' => 'required|email|unique:users',
'phone' => 'required|min:11|numeric',
'course_id'=>'required'
]);
$user = new User();
$user->name= $request->Input(['name']);
$user->email= $request->Input(['email']);
$user->phone= $request->Input(['phone']);
$user->date = date('Y-m-d');
$user->completed_status = '0';
$user->course_id=$request->Input(['course_id']);
$user->save();
return redirect('success');
}这是路线:Route::group(['middleware' => 'web'], function () {
Route::get('/', function () {
return view('index');
})->name('main');
Route::post('/saveUser',[
'uses' => 'AppController@saveUser',
'as'=>'saveUser',
]);
});这是刀片视图页面:@extends('layouts.master')@section('title')Create User@endsection@section('content')@include('partials.message-block')
<div class="container" >
<h3> Student Register </h3>
{!! Form::open(array('route' => 'saveUser','class'=>'form-horizontal','method'=>'POST')) !!}
{!! Form::token(); !!}
{!! csrf_field() ; !!}
<div class="form-group">
<label>Name</label>
<input type="text" name="name" class="form-control" required placeholder="Name">
</div>
3 回答
慕的地8271018
TA贡献1796条经验 获得超4个赞
web
如果您使用的是5.2.27或更高版本,请尝试删除中间件。事情是现在Laravel自动将web
中间件应用于内部的所有路由routes.php
,如果您尝试手动添加它,您可能会收到错误。
app/Providers/RouteServiceProvider.php
5.2.27版本现在将web中间件添加到内部的所有路由routes.php
:
protected function mapWebRoutes(Router $router){ $router->group([ 'namespace' => $this->namespace, 'middleware' => 'web', ], function ($router) { require app_path('Http/routes.php'); });}
手掌心
TA贡献1942条经验 获得超3个赞
在控制器中使用以下行
使用Validator;
在发送请求的控制器功能中添加以下代码。
$validator = Validator::make($request->all(), [ 'fname' => 'required|max:20|min:4', 'uemail' => 'required|email', 'message' => 'required', ]); if ($validator->fails()) { $messages = $validator->messages(); return Redirect::back()->withErrors($messages)->withInput($request->all()); }
在您的视图页面中
@if ($errors->any()) <label for="fname" class="error">{{ $errors->first('fname') }}</label> @endif
用于显示单个字段明智的错误。
泛舟湖上清波郎朗
TA贡献1818条经验 获得超3个赞
Alexey是正确的,如果您对此不满意,那么您只需将此代码添加到视图中即可显示会话消息。
@if(Session::has('message')) <div class="alert alert-success">{{Session::get('message')}}</div> @endif @if(count($errors)>0) <ul> @foreach($errors->all() as $error) <li class="alert alert-danger">{{$error}}</li> @endforeach </ul> @endif
我在laravel 5.5中做到了这一点。请确认这是否有助于您解决问题。
- 3 回答
- 0 关注
- 346 浏览
添加回答
举报
0/150
提交
取消