2016-08-30 29 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是否忘記了()但確保腳本不會忘記()第一個如果它 –