我对标题所说的Laravel有问题。我的代码:
控制器中的功能:
$validator = Validator::make($request->all(), [
'login' => 'required|max:10',
'katalog' => 'required',
'limitip' => 'required|ip',
]);
if($validator->fails()){
return redirect('something/toedit/someone')->withErrors($validator)->withInput();
}
else{
echo "Clear.";
}
和路线:
Route::get('something/toedit/{login}',['middleware' => 'auth', 'uses'=>'MyController@editAccountGet']);
Route::post('something/toedit',['middleware' => 'auth', 'uses'=>'MyController@editAccountPost']);
现在的问题是,在我看来,这段代码总是不返回任何内容。
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
另外 {{count($errors)}} 它等于 0。但是如果我使用这样的代码:
@if (Session::has('errors'))
{{var_dump(Session::get('errors'))}}
@endif
在我看来,它又回来了:
object(Illuminate''Support''ViewErrorBag)#146 (1) { ["bags":p rotected]=> array(1) { ["default"]=> object(Illuminate''Support''MessageBag)#147 (2) { ["messages":p rotected]=> array(1) { ["login"]=> array(1) { [0]=> string(48) "登录名不能大于 10 个字符。" } } ["format":p rotected]=> string(8) ":message" } } }
有人可以帮助我访问边栏选项卡中变量$errors错误吗?我在这里真的很困惑。
我在 Laravel 5.2.41 上遇到了类似的问题。就我而言,$errors->has() 总是返回 1,即使没有错误。
从Laracasts找到了解决方案:-
$errors->has() 自框架升级以来返回 true
将$errors->has()
替换为$errors->any()
或$errors->count() > 0
就可以了。
$errors
变量可以由 Web 中间件组添加,其中包括 ShareErrorsFromSession。您可以通过几种不同的方式将其应用于您的路线:
// Apply to a single route
Route::get('/', ['middleware' => ['auth', 'web'], function () {
//
}]);
// To a group of routes
Route::group(['middleware' => ['auth', 'web']], function () {
Route::get(...);
Route::post(...);
});
请参阅 https://laravel.com/docs/5.2/middleware#assigning-middleware-to-routes