Laravel:如何显示传递到视图的消息数据
解决Laravel重定向后消息不显示的问题
嘿,我来帮你搞定这个问题!你现在遇到的情况是因为Laravel里redirect()->with()方法并不是直接把$message变量传递到视图里,而是把这个消息**闪存到Session(会话)**中了,所以你用isset($message)自然找不到这个变量~
下面是几种正确的写法,任选一种都能解决问题:
方法一:使用session辅助函数
这是最常用也最简洁的方式:
@if(session('message')) <div class="alert alert-success"> <ul> <li>{{ session('message') }}</li> </ul> </div> @endif
方法二:使用Laravel的@session指令(Laravel 5.8及以上版本支持)
这种写法更优雅,自动处理存在性判断:
@session('message') <div class="alert alert-success"> <ul> <li>{{ $value }}</li> </ul> </div> @endsession
方法三:使用Session门面
如果你习惯用门面的方式,也可以这样写:
@if(\Illuminate\Support\Facades\Session::has('message')) <div class="alert alert-success"> <ul> <li>{{ \Illuminate\Support\Facades\Session::get('message') }}</li> </ul> </div> @endif
另外还要注意一个细节:确保你的路由是在web路由组下,因为web路由组默认包含了处理Session的中间件(比如StartSession和ShareErrorsFromSession),如果你的路由不在这个组里,Session功能会失效,消息也存不进去哦~
内容的提问来源于stack exchange,提问作者rushtoni88
相关产品推荐
相关产品推荐

