【发布时间】:2018-08-27 03:19:48
【问题描述】:
我的目标是使用相同的表单同时插入多条记录。我已经在表单元素中创建了一个函数,它将复制所有字段并使用一个提交按钮传递所有数据。所以视图和传递给控制器的数据没有问题。
我有一个数组:
array:8 [▼
"_token" => "XLQVP4Hbm85SlZDFa6OnjK0LCoMOsrfs8jGCUwMj"
"id" => null
"client_id" => array:2 [▼
0 => "1"
1 => "1"
]
"sample_code" => array:2 [▼
0 => "sadasdas"
1 => "qwewqewqeqweq"
]
"sample_description" => array:2 [▼
0 => "dasdsad"
1 => "dsadsadasd"
]
"quantity" => array:2 [▶]
"analysis_requested" => array:2 [▼
0 => "dasdsadasd"
1 => "dsadsadas"
]
"special_instruction" => array:2 [▼
0 => "asdadasda"
1 => "asdasdaada"
]
]
上面给出的数组只是我从表单中传递的示例数据。这可能是 3、4 等等,取决于用户输入。
如何使用批量插入插入此查询?
这是我在控制器中的代码。
data = array(
array(
'client_id' => $input['client_id'][0],
'sample_code' => $input['sample_code'][0],
'sample_description' => $input['sample_description'][0],
'quantity' => $input['quantity'][0],
'analysis_requested' => $input['analysis_requested'][0],
'special_instruction' => $input['special_instruction'][0],
'status' => 'for_testing',
'created_at' => $date_today,
'updated_at' => $date_today,
),
array(
'client_id' => $input['client_id'][1],
'sample_code' => $input['sample_code'][1],
'sample_description' => $input['sample_description'][1],
'quantity' => $input['quantity'][1],
'analysis_requested' => $input['analysis_requested'][1],
'special_instruction' => $input['special_instruction'][1],
'status' => 'for_testing',
'created_at' => $date_today,
'updated_at' => $date_today,
),
);
AnalysisRequest::insert($data);
我将如何通过使用每个循环来简化此代码?顺便说一句,我将如何获得我插入的每个数据的最后一个 id。
如果有人可以提供帮助,我们将不胜感激。 提前致谢。
【问题讨论】:
-
如果您有适当数组格式的数据,那么您可以使用一个插入函数插入所有数据。
-
我会在数组内的变量数据中做一个 foreach 吗?
-
你找到解决方案了吗?
标签: php arrays laravel laravel-5.5 bulkinsert