[英]How to insert multiple array with sub array as rows in Mysql using Laravel
我有一個包含以下字段 id、名稱、類型和顏色的表
我有以下輸入字段並想添加多行
<input type="text" name="com_name[]" value="a">
<input type="text" name="com_type[]" value="1">
<input type="text" name="com_color[]" value="red">
<input type="text" name="com_type[]" value="2">
<input type="text" name="com_color[]" value="green">
<input type="text" name="com_name[]" value="b">
<input type="text" name="com_type[]" value="1">
<input type="text" name="com_color[]" value="black">
<input type="text" name="com_type[]" value="2">
<input type="text" name="com_color[]" value="yellow">
我正在嘗試 laravel 但如果有人可以在核心 PHP 中展示如何做到這一點,那也會有很大幫助
$com_name = array();
$com_name = Input::get('com_name');
$dataSet = [];
foreach ($com_name as $name) {
$dataSet[] = [
'name' => $request->com_name,
'type' => $request->com_type,
'color' => $request->com_color,
];
}
DB::table('extra')->insert($dataSet);
我想要在我的 mysql 表中的以下 output
ID Name Type Color
1 a 1 red
2 a 2 green
3 b 1 black
4 b 2 yellow
我建議在您的 HTML 中創建子數組,並使用像這樣的顯式頂級索引...
<input type="text" name="com_name[0]" value="a">
<input type="text" name="com_type[0][]" value="1">
<input type="text" name="com_color[0][]" value="red">
<input type="text" name="com_type[0][]" value="2">
<input type="text" name="com_color[0][]" value="green">
<input type="text" name="com_name[1]" value="b">
<input type="text" name="com_type[1][]" value="1">
<input type="text" name="com_color[1][]" value="black">
<input type="text" name="com_type[1][]" value="2">
<input type="text" name="com_color[1][]" value="yellow">
然后在您的 PHP 中,您將使用第二個 foreach 遍歷這些子陣列...
foreach ($com_name as $index => $value) {
$type = $request->com_type[$index];
foreach($type as $subIndex => $typeVal)
{
$dataSet[] = [
'name' => $value,
'type' => $typeVal,
'color' => $request->com_color[$index][$subIndex],
];
}
}
我個人不使用 Laravel,所以這假設您上面的 Laravel 特定代碼是正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.