session - 在 Blade.php 文件 laravel 5.4 中设置会话值
问题描述
我在 laravel 5.4 项目中工作,想使用 laravel 视图 show.blade.php 文件设置和获取会话值。有什么方法可以实现这一点。
解决方案
您不应在刀片文件中设置会话值。这是一个不好的方法(把它带到控制器)
但如果你还想这样做
{{ session()->put('my_test_key','my_value')}}
你可以通过
{{ session()->get('my_test_key') }}
如果你看一下视图是如何在 php/laravel 中呈现的,那么不要使用视图在会话中放置一些东西是有意义的。
渲染视图时在控制器内部:
return view('show.blade.php',compact('my_var'));
在此阶段,您的值将在返回编译视图之前放入会话
如果我们使用控制器而不是视图为会话赋值,它将如下所示:
session()->put('my_test_key','my_value') // value is put to session before compiling the view
return view('show.blade.php',compact('my_value'));
计算是控制器而不是视图的责任,乍一看您的控制器,任何人都会告诉您正在为 Session 赋予一些价值。
另一方面,如果我们使用 View 将某些内容放入会话中,如果有人想调试您的代码,他们必须深入查看视图以找到该行。相信我,挖掘视图并不容易,一个月后你也无法在视图中找到该行。
推荐阅读
- c - 如何在没有桌面的情况下在树莓派上运行 c 代码(在代码块上)?(就像 omxplayer 的工作)
- javascript - 将网络摄像机流式传输到 Angular 项目中的浏览器
- c# - 在wpf中按下ALT键时如何禁用带下划线的列表框项目
- r - 如何调整绘图图例中两列之间的空间?
- python-2.7 - 我得到 barplot ,但没有得到 scatterplot
- python-unittest - freeze_time 不适用于默认参数
- firebase - 你如何显示同一用户的 2 个 tableViews?Firebase 数据库
- java - 按特定顺序从 ResultSet 检索和显示值
- c# - 同时从 S3 读取文件
- spring - 使用 Spring Boot 更新密码并且 JPA 不起作用