如何在Laravel中从Controller向Blade视图传递成功/失败状态及提示消息
Laravel控制器向Blade视图传递状态消息的实现方法
Laravel提供了Session闪存机制,可直接在跳转时传递临时状态和提示信息,具体实现如下:
1. 控制器(Controller)端代码
完成业务逻辑后调用redirect()的with()方法,将状态标识和提示消息闪存到Session中:
public function store(Request $request) { // 业务成功场景 return redirect()->back()->with('success', '文件上传成功'); // 业务失败场景,替换上方返回即可 // return redirect()->back()->with('failure', '文件上传失败,请检查文件大小和格式'); }
2. Blade视图端代码
在视图中通过Session方法判断标识是否存在,存在则渲染对应提示:
{{-- 成功提示框 --}} @if (session()->has('success')) <div class="alert alert-success"> {{ session()->get('success') }} </div> @endif {{-- 失败提示框 --}} @if (session()->has('failure')) <div class="alert alert-danger"> {{ session()->get('failure') }} </div> @endif
注意:原示例代码存在两处可调整点:
- 原代码中闪存
failure标识时传入了成功提示,可根据实际业务场景对应匹配状态和提示内容- 原Blade代码中使用
session()->has()输出内容,该方法仅返回布尔值判断标识是否存在,获取消息内容需要用session()->get()方法
提示:如果项目引入了Bootstrap前端框架,上述代码中的alert系列样式可直接生效,未引入的话自行给提示框添加对应样式即可
内容的提问来源于stack exchange,提问作者Manish kapadi
相关产品推荐
相关产品推荐

