如何更新laravel 4中的会话数组 - 使用新项更新

时间:2016-08-30 19:03:38

标签: php arrays laravel

我使用ajax和laravel 4并且我上传了数组文件 - 它们是多个。但是我不确定如何使用新数组更新会话数组。我已经尝试过array_merge,但它已被淹没了。

我的方法看起来像这样:



public function storeFiles() {
  $name = Input::get('name');
  $input = Input::all();
  $current_time = time();

  $trim_name = trim($name, '[]');
  $corporate_docs = array();

  foreach ($input[$trim_name] as $corporate) {
      $file_name = $current_time . '_' . $corporate->getClientOriginalName();

      $corporate->move(APPLICATIONS_DIR, $file_name);
      $corporate_docs[] = $file_name;
   
  }  
  $session = Session::get($name);
  if($session) {
    $docs = array_push($session, $corporate_docs); 
    Session::put($name, $docs); 
  } else {
    Session::put($name, $corporate_docs);
  }
}




如何使用新创建的?

合并现有的会话数组

更新:我的代码现在是:



 $trim_name = trim($name, '[]');
                $corporate_docs = array();

                foreach ($input[$trim_name] as $corporate) {
                    if ($corporate) {
                        $file_name = $current_time . '_' . $corporate->getClientOriginalName();
                
                        $corporate->move(APPLICATIONS_DIR, $file_name);
                        $corporate_docs[] = $file_name;
                        
                    }
                }
                $session = Session::get($name);
                if (Session::has($name)) {
                     $docs = array_merge($session, $corporate_docs); //dd($docs);
                     Session::forget($name);
                     Session::put($name, $docs); dd(Session::get($name));
                } else {
                    Session::put($name, $corporate_docs);
                }




但它再次成为现实。当我添加第一个图像时,它存储在会话中,当我添加另一个图像时,它与第一个数组合并但是当我添加第三个图像时,在新创建的会话数组中 - 它是第一个图像和最后一个图像。第二张图片被覆盖。

1 个答案:

答案 0 :(得分:0)

试试这个:

if(session()->has($name)) {
    session()->forget($name);
}

session()->put($name, $corporate_docs);