Я пытаюсь нажимать, удалять или обновлять некоторые данные в массиве сеансов L5.Laravel 5 session put/push/pull array
Мой код:
$id = $request->input('id');
$type = $request->input('type');
$removeEvent = $request->input('removeEvent');
if($request->session()->has('event')){
$events = $request->session()->get('event');
$request->session()->forget('event'); //forget and create new session
for($i=0; $i<count($events['id']); $i++){
if($events['id'][$i] == $id&& $events['type'][$i] == $type && $removeEvent == 'true'){ //delete
}elseif($events['id'][$i] == $id&& $events['type'][$i] != $type){ //update
$request->session()->push('event.id', $events['id'][$i]);
$request->session()->push('event.type', $type);
}else{
$request->session()->push('event.id', $id);
$request->session()->push('event.type', $type);
}
}
}else{
$request->session()->push('event.id', $id);
$request->session()->push('event.type', $type);
}**
$request->session()->save();
Когда я собираюсь отправить идентификатор и тип, если идентификатор на сессии и тип отличается, я хочу, чтобы обновить его или removeEvent верно, то удалить, если он не во время сеанса, нажмите его. Итак, мне нужно искать весь массив или есть ли быстрый способ для этих действий?
Обновление: Я сделал быстрый способ для всего этого кода.
$check = $request->session()->has('event.'.$id);
if ($check == 1 && $removeEvent == "true") {
$request->session()->forget('event.'.$id);
} elseif ($check == 1){
$request->session()->put('event.'.$id, $type);
} else {
$request->session()->put('event',
array_add($event= $request->session()->get('event'), $id, $type));
}
Вы хотите сохранить 1 сеанс, который содержит массив всех событий и 1 сеанс для каждого события? – Erevald