我使用的是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);
}
但是它又被写出来了。当我添加第一个镜像时,它存储在会话中,当我添加另一个镜像时,它与第一个数组合并,但当我添加第三个镜像时,在新创建的会话数组中-它是第一个镜像和最后一个镜像。覆盖第二个图像。
发布于 2016-08-31 03:13:06
试试这个:
if(session()->has($name)) {
session()->forget($name);
}
session()->put($name, $corporate_docs);https://stackoverflow.com/questions/39235225
复制相似问题