我想基于$ id(唯一ID)创建会话。这是为了当每个用户进入Web应用程序时,他们将拥有自己的会话ID以及他们自己的数组。但是现在当我把它放在函数中时,每次我进入函数时,会话都没有被存储,它会覆盖前一个会话。所以我如何修改代码,以便在函数test()中为每个用户创建所有会话。
这是我的代码:
public function test()
{
$id = 'new3'; //later on will be auto generate id
$array[$id] = ['one' => 'abc', 'two' => 'def'];
if (!session($id)) {
session($array);
}
dd(session()->all());
}
答案 0 :(得分:0)
你应该像这样操纵laravel会话:
public function test(Request $request)
{
$id = 'new3'; //later on will be auto generate id
$array[$id] = ['one' => 'abc', 'two' => 'def'];
// Determining if an item exists in the session.
if (!$request->session()->has($id)) {
// Storing data in the session.
$request->session()->put($id, $array[$id]);
}
dd($request->session()->all());
}
答案 1 :(得分:0)
Session::put('variable', $yourvalue);
然后开始会议:
Session::get('variable');
答案 2 :(得分:0)
正确的语法是......
Session::set('variableName', $value);
要获取变量,您可以使用...
Session::get('variableName');
如果你需要设置一次,我会弄清楚你想要什么时候设置它并使用事件来做。例如,如果您想在有人登录时进行设置,您可以使用...
Event::listen('auth.login', function()
{
Session::set('variableName', $value);
});
答案 3 :(得分:0)
我认为你需要尝试这个希望这项工作适合你:
public function test(Request $request)
{
$id = 'new3'; //later on will be auto generate id
$array[$id] = ['one' => 'abc', 'two' => 'def'];
// Determining if an item exists in the session.
if (!$request->session()->has($id)) {
// Storing data in the session.
$request->session()->put($id, $array[$id]);
}
dd($request->session()->all());
if($request->session()->has($id)) {
$request->session()->forget($id);
}
}
答案 4 :(得分:0)
即使我在操作会话laravel中存储的数组时也没遇到什么麻烦。经过反复试验,我能够使事情正常进行,就像这样:
$data['quantity'] = $request['quantity'];
$data['price'] = $price;
$data['tax'] = $tax;
$data['shipping'] = 0;
if($request->session()->has('cart')){
$cart = $request->session()->get('cart', collect([]));
$is_id_duplicate = false;
foreach($cart as $key=> $c){
if ($c['id']== $request->id) {
$is_id_duplicate=true;
break;
}
}
if ($is_id_duplicate) {
$cart = $cart->map(function ($object, $key) use ($request) {
if($object['id'] == $request->id){
$object['quantity'] = $request->quantity;
}
return $object;
});
$request->session()->put('cart', $cart);
}else{
$cart->push($data);
}
echo "<br><pre>";
print_r($cart);
echo "</pre>";
}
else{
$cart = collect([$data]);
$request->session()->put('cart', $cart);
}