簡體   English   中英

如何使用 Laravel 在 Mysql 中插入多個帶有子數組的數組作為行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM