我使用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);
}

但它再次成为现实。当我添加第一个图像时,它存储在会话中,当我添加另一个图像时,它与第一个数组合并但是当我添加第三个图像时,在新创建的会话数组中 - 它是第一个图像和最后一个图像。第二张图片被覆盖。
答案 0 :(得分:0)
试试这个:
if(session()->has($name)) {
session()->forget($name);
}
session()->put($name, $corporate_docs);