Php Laravel 5.2显示验证错误
我试图通过使用Laravel的验证器来验证一个简单的表单。看起来验证工作正常,但我无法显示错误。窗体和控制器如下所示 形式 如果从路由中删除web中间件组,则错误显示良好 当前我的Php Laravel 5.2显示验证错误,php,validation,laravel,laravel-5.2,Php,Validation,Laravel,Laravel 5.2,我试图通过使用Laravel的验证器来验证一个简单的表单。看起来验证工作正常,但我无法显示错误。窗体和控制器如下所示 形式 如果从路由中删除web中间件组,则错误显示良好 当前我的routes.php文件如下所示 Route::group(['middleware' => ['web']], function () { Route::get('/teams', 'TeamsController@create'); Route::post('/teams', 'TeamsC
routes.php
文件如下所示
Route::group(['middleware' => ['web']], function () {
Route::get('/teams', 'TeamsController@create');
Route::post('/teams', 'TeamsController@store');
});
如何解决此问题?任何帮助都将不胜感激。在控制器中编写以下代码:
// define rules
$rules = array(
'team_name' => 'required|min:10'
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails())
{
// something
return Redirect::back()
->withErrors($validator) // send back all errors to the login form
->withInput();
}
else
{
// something
// save your data
$team = new Team;
$team->team_name = $request->team_name;
$team->save();
}
视图中的更改文件:
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(计数($errors)>0)
@foreach($errors->all()作为$error)
- {{$error}}
@endforeach
@恩迪夫
在控制器中编写以下代码:
// define rules
$rules = array(
'team_name' => 'required|min:10'
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails())
{
// something
return Redirect::back()
->withErrors($validator) // send back all errors to the login form
->withInput();
}
else
{
// something
// save your data
$team = new Team;
$team->team_name = $request->team_name;
$team->save();
}
视图中的更改文件:
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(计数($errors)>0)
@foreach($errors->all()作为$error)
- {{$error}}
@endforeach
@恩迪夫
我建议您使用Laravel
跑
添加一些逻辑和规则
class TeamRequest extends Request {
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true; //you can put here any other variable or condition
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
// put your validation rules here
];
}
}
那么您的控制器代码将如下所示:
public function store(TeamRequest $request)
{
$team = Team::create($request->all());
return back();
}
您不再需要验证请求并重定向回错误和其他内容,laravel将为您执行此操作您的代码看起来更干净整洁,不是吗?我建议您使用Laravel 跑 添加一些逻辑和规则
class TeamRequest extends Request {
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true; //you can put here any other variable or condition
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
// put your validation rules here
];
}
}
那么您的控制器代码将如下所示:
public function store(TeamRequest $request)
{
$team = Team::create($request->all());
return back();
}
您不再需要验证请求并重定向回错误和其他内容,laravel将为您执行此操作您的代码看起来更干净整洁,不是吗?经过一点研究,我发现Laravel 5.2有一个
路由服务提供商
,它包括所有路由的web中间件组。因此,我不必手动将web中间件组添加到路由中。我刚刚从routes.php
中删除了它,问题就解决了。经过一点研究,我发现Laravel 5.2有一个RouteServiceProvider
,它包括所有路由的web中间件组。因此,我不必手动将web中间件组添加到路由中。我刚刚从routes.php
中删除了它,问题就解决了
如果从路由中删除web中间件组,则错误显示良好
在Laravel 5.2中,web
middleware自动应用于routes.php中的路由,因此无需再次应用web
中间件。它在RouteServiceProvider
的mapWebRoutes()
方法中定义
如果从路由中删除web中间件组,则错误显示良好
在Laravel 5.2中,web
middleware自动应用于routes.php中的路由,因此无需再次应用web
中间件。它是在RouteServiceProvider的mapWebRoutes()
方法中定义的
在Laravel5中,首先需要创建处理验证的请求类
php artisan make:request RequestName
您将在中找到您提出的请求类
'app/http/Requests/RequestName.php'
在rules函数中,您可以处理验证
public function rules()
{
return [
// put your validation rules here
'team_name' => 'required|min:10'
];
}
最后在你的控制器里
use App\Http\Requests\RequestName;
public function store(RequestName $request) {
Team::create($request->all());
return Redirect::back();
}
更多说明为什么在使用laravel 5时使用类似laravel 4的验证
在Laravel5中,首先需要创建处理验证的请求类
php artisan make:request RequestName
您将在中找到您提出的请求类
'app/http/Requests/RequestName.php'
在rules函数中,您可以处理验证
public function rules()
{
return [
// put your validation rules here
'team_name' => 'required|min:10'
];
}
最后在你的控制器里
use App\Http\Requests\RequestName;
public function store(RequestName $request) {
Team::create($request->all());
return Redirect::back();
}
更多说明尝试,未更改。尝试,未更改。