我使用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 –