我对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){[&#34; bags&#34;:protected] =&gt; array(1){[&#34;默认&#34;] =&gt;对象(Illuminate \ Support \ MessageBag)#147(2){[&#34; messages&#34;:protected] =&gt; array(1){[&#34; login&#34;] =&gt; array(1){[0] =&gt; string(48)&#34;登录名不得超过10个字符。&#34; }&#34;格式&#34;:protected] =&gt; string(8)&#34;:message&#34; }}
有人可以帮我从我的刀片视图中的$ errors变量中访问错误吗?我真的很困惑。
答案 0 :(得分:1)
我在Laravel 5.2.41上遇到了类似的问题。就我而言,$ errors-&gt; has()总是返回1,即使没有错误。
从Laracasts找到解决方案: -
$errors->has() returns true since framework upgrade
将$errors->has()
替换为$errors->any()
或$errors->count() > 0
即可。
答案 1 :(得分:0)
网络中间件组可以添加$errors
变量,其中包括 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