2016-08-30 32 views
1

我使用Ajax和laravel 4和我上传的是数组文件与新项目更新 - 他们是多方面的。但我不知道如何用新阵列更新会话数组。我已经尝试过array_merge,但它已经过时了。如何更新laravel 4届阵列 -

我的方法看起来像这样:

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); 
 
       }

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

+1

因此,新的会话变量的值从$ corporate_docs阵列,对不对? –

+0

是的,我用Session :: get($ name)得到的旧会话值; –

+0

是的,只是要表明array_merge –

回答

0

试试这个:

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

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

我在以往的项目中忽略了Session :: method()......不记得为什么,但我认为这是因为我只能让session() - > method()工作 –

+0

我现在就试试,我想在laravel 4中,它应该是'''Session :: has()''。 –

+0

不知道Laravel 4是否忘记了()但确保脚本不会忘记()第一个如果它 –