Laravel:如果会话变量更改,则在所有打开的选项卡上显示消息(警报)

Laravel: Show message(alert) on all open tabs, if session variable changed

Laravel版本:5.2.45

PHP版本:^5.4

我有一个名为 f_year 的会话变量。它在会话中存储财政年度。这可以由用户更改。更改 f_year 后,会话将重置并重新加载页面。

问题是,用户在一个选项卡中更改了 f_year,而没有刷新另一个选项卡,保存了数据。而且年份不匹配。

是否可以在其他打开的选项卡上显示提醒您的财政年度已更改。请重新加载页面以继续。

@user9141607,您可以将Laravel升级到5.3并使用Laravel Broadcasting获取live-updating页面上的信息而无需刷新。

另一个解决方案: 它是将会话与所选年份相关联(保存在服务器 DB 上并添加到每个页面)。当用户更改年份时,关联的会话将被删除(用户会话的 ID 已更改)。 由于用户将尝试使用已删除的会话保存数据,您可以响应用户“年份已更改,页面已重新加载”。

我说的会话,它可以是$_SESSION[]中的任何信息。所以你必须仔细检查服务器中的年份是否与每个用户请求中的年份相同。

好吧,前几天我 运行 遇到了类似的问题。我所做的是首先设置 cookie 和会话变量(使用 PHP)。然后我使用 JQuery 来获取 cookie 值。 JQuery cookie 方法,获取当前 cookie 集(与浏览器选项卡无关)。

然后我比较了这两个值并提醒用户有关不匹配的设置。

希望对您有所帮助!