我使用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。當我添加第一個圖像時,它被存儲在會話中,當我添加另一個時,它會與第一個數組合並,但是當我添加第三個圖像時,在新創建的會話數組中 - 它是第一個圖像和最後一個圖像。第二張圖片被覆蓋。
因此,新的會話變量的值從$ corporate_docs陣列,對不對? –
是的,我用Session :: get($ name)得到的舊會話值; –
是的,只是要表明array_merge –