访问 Laravel 中的错误
Access the errors in Laravel
我对名为 /home
的路由具有以下功能:
public function home(){
if(Session::has("user_id")){
return view("home");
}else{
return view("welcome", [
'error_message' => "Please log in to access that page!"
]);
}
}
然后,在我的 welcome
视图中,我显示这样的错误:
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<p> {{ $error_message }} </p>
</div>
一切都按预期工作,但当我一次又一次刷新页面时,错误不断出现。我知道变量还没有 unset
所以它正在发生。但是,真正的问题是:
Can't I do the same using MessageBag instance of Laravel?
在表单验证期间,如果发生错误,错误就会显示出来,如果我刷新页面,错误就会消失。那么,我不能使用该方法在我的页面中带来相同的行为吗?
你可以这样做
public function home(){
if(Session::has("user_id")){
return view("home");
}else{
return view("welcome")->with('error_message', 'Please log in to access the page');
}
}
和
@if(!empty($error_message))
<div class="alert alert-success"> {{ $error_message }}</div>
@endif
示例 1
设置错误使用
return redirect()->back()->withErrors('my message');
要访问 blade 中的错误,请使用
@if ($errors->any())
<div class="alert alert-danger">
<ul class="mb-0">
@foreach($errors->all() as $error)
<li>{!! $error !!}</li>
@endforeach
</ul>
</div>
@endif
是的,使用重定向而不是在同一路由上返回不同的视图,因为它更清晰。
示例 2
但是如果你想努力学习它,像这样设置警报
session()->flash('alert', 'your message');
并像这样访问它
<div class="alert alert-success"> {{ session('alert') }}</div>
示例 3
如果你想使用 MessageBag,你只需要抛出一个特殊的异常
throw ValidationException::withMessages([
'message' => ['my message here'],
])->status(400);
并访问它,如示例 1 所示
我对名为 /home
的路由具有以下功能:
public function home(){
if(Session::has("user_id")){
return view("home");
}else{
return view("welcome", [
'error_message' => "Please log in to access that page!"
]);
}
}
然后,在我的 welcome
视图中,我显示这样的错误:
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<p> {{ $error_message }} </p>
</div>
一切都按预期工作,但当我一次又一次刷新页面时,错误不断出现。我知道变量还没有 unset
所以它正在发生。但是,真正的问题是:
Can't I do the same using MessageBag instance of Laravel?
在表单验证期间,如果发生错误,错误就会显示出来,如果我刷新页面,错误就会消失。那么,我不能使用该方法在我的页面中带来相同的行为吗?
你可以这样做
public function home(){
if(Session::has("user_id")){
return view("home");
}else{
return view("welcome")->with('error_message', 'Please log in to access the page');
}
}
和
@if(!empty($error_message))
<div class="alert alert-success"> {{ $error_message }}</div>
@endif
示例 1
设置错误使用
return redirect()->back()->withErrors('my message');
要访问 blade 中的错误,请使用
@if ($errors->any())
<div class="alert alert-danger">
<ul class="mb-0">
@foreach($errors->all() as $error)
<li>{!! $error !!}</li>
@endforeach
</ul>
</div>
@endif
是的,使用重定向而不是在同一路由上返回不同的视图,因为它更清晰。
示例 2 但是如果你想努力学习它,像这样设置警报
session()->flash('alert', 'your message');
并像这样访问它
<div class="alert alert-success"> {{ session('alert') }}</div>
示例 3
如果你想使用 MessageBag,你只需要抛出一个特殊的异常
throw ValidationException::withMessages([
'message' => ['my message here'],
])->status(400);
并访问它,如示例 1 所示