Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用Laravel在Mysql中插入多个以子数组作为行的数组_Php_Laravel_Laravel 5 - Fatal编程技术网

Php 如何使用Laravel在Mysql中插入多个以子数组作为行的数组

Php 如何使用Laravel在Mysql中插入多个以子数组作为行的数组,php,laravel,laravel-5,Php,Laravel,Laravel 5,我有一个具有以下字段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

我有一个具有以下字段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">
我希望mysql表中有以下输出

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">

我个人不使用Laravel,因此这假设您上面的Laravel特定代码是正确的。

我建议您在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">

我个人不使用Laravel,因此这假设您上面的Laravel特定代码是正确的。

在循环中,除了获取值外,还获取索引(
as$I=>$name
)。然后你可以将相同的索引应用于其他数组,以获得相应的值。Thaks,但是你能写完整的代码吗?我的问题没有什么不同,我有两组名称a,b,每个名称有两个子集。所有输入的值都是可编辑的吗?您当前的HTML使其看起来像是。这是实际呈现的HTML的粘贴吗?是的值是可编辑的,我的HTML有动态输入字段我有这样的HTML我们有多个com_名称和子输入[type]和[color],我们可以在循环中的每个com_名称中添加无限制的类型和颜色,除了获取值,还可以获取索引(
as$I=>name
)。然后你可以将相同的索引应用于其他数组,以获得相应的值。Thaks,但是你能写完整的代码吗?我的问题没有什么不同,我有两组名称a,b,每个名称有两个子集。所有输入的值都是可编辑的吗?您当前的HTML使其看起来像是。这是实际呈现HTML的粘贴吗?是的值是可编辑的,我的HTML有动态输入字段我有这样的HTML我们有多个com_名称和子输入[type]和[color],我们可以在每个com_名称中添加无限的类型和颜色
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],
        ];
    }
}