【问题标题】:Laravel: difference between session()->flash() and session()->now()Laravel:session()->flash() 和 session()->now() 之间的区别
【发布时间】:2022-01-03 23:22:11
【问题描述】:

当给定错误的参数时,我尝试显示一条闪烁消息。
我试过这样做:

with session()->flash('error', 'error message.'); 

并返回视图,但是当我在 url 中放置一个正确的参数时,我必须加载两次才能让视图显示而不是只显示错误消息。

尝试使用时(因为在我找到的一些 SO 答案中建议使用它):

session()->now('error', 'error message.');

成功了;我在 url 中输入了正确的参数,只需要重新加载一次。

现在我想知道这两者之间有什么区别?
我读过他们都应该只为一个请求而留下,但显然他们不一样......

【问题讨论】:

  • 可能需要更多关于此flash() 呼叫发生地点的信息。有时,如果发生重定向,您需要在中间件中调用 session()->reflash(),而 flash() 不能很好地处理 AJAX 请求(除非您立即通过 JS 重新加载页面)等等。

标签: php laravel session flash-message


【解决方案1】:

flash() 方法用于在会话中存储数据,仅用于下一个请求。这就是为什么您必须重新加载您的应用两次。

另一方面,now() 是立即使用的,您使用此方法存储的数据会在您提出新请求时立即删除。

因此,使用哪种方法基本上取决于您何时需要访问您的数据(当前或下一个请求)。

【讨论】:

    猜你喜欢
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 2013-04-08
    • 1970-01-01
    • 2012-04-14
    • 2014-07-31
    相关资源
    最近更新 更多