当前我返回的错误如下:
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
return Redirect::to('login')->withErrors($validator); // <--
}
并在模板中显示它们:
{{ isset($errors) ? $errors->first() : '' }}
我想实现的是返回一个通知,可以是"信息"、"成功"或"错误"通知。类似这样的东西:
return Redirect::to('login')->with('notification', 'error', $validator); //Error message
return Redirect::to('login')->with('notification', 'success', 'Logged in!'); //Success message
然后显示它们,像这样:
{{ isset('$notification') ? '<div class="notification ' . $notification[1] . '">$notification[2]</div>' : '' }}
这样的事情应该是可能的,对吧?
我不知道这是否对你有任何帮助,但这就是我一直在做的。
在控制器中,我们将向用户返回一个包含一些不同内容的页面。
对于错误,我们会像您一样处理。
return Redirect::to('/whatever')->withErrors($validator);
对于成功,也有类似的东西。
return Redirect::to('/whatever')->with('success', "Hooray, things are awesome!");
然而,在错误和通知所在的视图中,您只会看到这一点。
@include('global.notifications')
其包含以下内容。(您不需要明确地将$errors
交给视图,它总是在那里。)
@if ($errors->any())
<div class="alert alert-danger">
@foreach($errors->all('<p>:message</p>') as $error)
{{ $error }}
@endforeach
</div>
@endif
@if (Session::has('success'))
<div class="alert alert-success">
<p>{{ Session::get('success') }}</p>
</div>
@endif