【发布时间】:2018-03-16 09:05:14
【问题描述】:
我有一个项目,登录用户可以填写一些数据。然后,此数据将存储在名为“Main_settings”的会话中。我这样做的方法是在我的控制器中这样做:
private $predefinedArray = ['user_id', 'city', 'postal_code', 'street_name',
'house_number', 'store_name', 'store_tel',
'store_hoo', 'vat_number'];
public function store(Request $request)
{
foreach($this->predefinedArray as $value) {
$request->session()->put('main_settings.' . $value, $request->input($value));
}
return redirect('themes');
}
在我看来,我通过这样做来调用会话变量:
{{ session('main_settings.store_name') }}
如果用户返回,他的信息仍然存在,这不是问题。问题是,如果 John Doe 登录并开始填写表格,然后退出。而Jane Doe 登录,John Doe 填写的信息会显示出来,而Jane Doe 甚至还没有填写任何内容。
不知何故,我需要通过用户 ID 来区分会话,以便我可以在视图中调用登录用户的会话。我怎样才能做到这一点?
user_id 与表单一起发送。
提前致谢。
【问题讨论】:
-
您是否考虑过在用户注销时清除
main_settings? -
对不起。我不明白。会议是独一无二的。这怎么可能?你能提供更多信息吗?因为你好像错过了什么
-
@haakym 我不太确定,在 laravel 中,我认为这是自动发生的,如果不是,我该如何实现?我知道需要的代码是
$request->session()->flush();,但只有在请求时才能这样做? -
@AlexSlipknot 这是我关于这个问题的所有信息。我唯一能给你额外的就是 HTML 表单,我认为这里不需要。
-
啊,好的,我明白了 :) 你被设置为 request->session 而不是 session()。所以有问题。
标签: php laravel session laravel-5