我有一个采用以下结构的表格
<tr id='actionRow'>
<td>
<input type="text" name='actionInput[0][]' id="actionInput" placeholder='Action' class="form-control"/>
</td>
<td>
<select class="responsibility" name="actionInput[1][]" id="responsibilityInput">
<option value=""></option>
@foreach($users as $user)
<option value="{{ $user->userName }}">{{ $user->userName }}</option>
@endforeach
</select>
</td>
<td>
<input type="text" name='actionInput[2][]' id="dateInput" placeholder='Completion Date' class="form-control dateControl"/>
</td>
</tr>
我为用户提供了一个向该表单添加行的选项,它基本上可以克隆表行。输出actionInput时进入控制器的最终结果如下所示
array:3 [▼
0 => array:3 [▼
0 => "Action Input 1"
1 => "Action Input 2"
2 => "Action Input 3"
]
1 => array:3 [▼
0 => "Responsibility Input 1"
1 => "Responsibility Input 2"
2 => "Responsibility Input 3"
]
2 => array:3 [▼
0 => "Date Input 1"
1 => "Date Input 2"
2 => "Date Input 3"
]
]
当此数据添加到我的数据库表中时,表行应包含每个数组中的一位数据。因此,如果我采用上述数据并将其插入数据库,则我的表行应如下所示
Action | Responsibility | Date
-------------------------------------
Input 1 | Responsibility 1 | Date 1
-------------------------------------
Input 2 | Responsibility 2 | Date 2
-------------------------------------
Input 3 | Responsibility 3 | Date 3
-------------------------------------
在我的控制器中,我目前正在执行此操作
$actions = Input::get('actionInput');
foreach($actions as $action => $category) {
$contactReportActions = new ContactReportActionsDoc();
$contactReportActions->contactReportId = $contactReport->id;
foreach($category as $key => $value){
$contactReportActions->action = $value;
$contactReportActions->responsibility = $value;
$contactReportActions->deliveryDate = $value;
}
$contactReportActions->save();
}
问题是,产生类似以下内容的问题
Action | Responsibility | Date
----------------------------------------------------------
Input 1 | Input 2 | Input 3
----------------------------------------------------------
Responsibility 1 | Responsibility 2 | Responsibility 3
----------------------------------------------------------
Date 1 | Date 2 | Date 3
----------------------------------------------------------
那么,如何在控制器中更正此错误,以便它正确地将数据输入到数据库中?
谢谢
我会做这样的事情:
<tr id='actionRow'>
<td>
<input type="text" name="actionInput[{{$key}}]['action']" id="actionInput" placeholder='Action' class="form-control"/>
</td>
<td>
<select class="responsibility" name="actionInput[{{$key}}]['responsibility']" id="responsibilityInput">
<option value=""></option>
@foreach($users as $user)
<option value="{{ $user->userName }}">{{ $user->userName }}</option>
@endforeach
</select>
</td>
<td>
<input type="text" name="actionInput[{{$key}}]['date_input']" id="dateInput" placeholder='Completion Date' class="form-control dateControl"/>
</td>
</tr>
在视图中,您应该为该数组生成一个随机键或顺序键,并将表的列及其名称存储起来。对于以后克隆的每一行,您都会生成另一个密钥。
如果需要,此布局还可以简化实体编辑。
然后,在Controller中,您可以像这样分隔每个实体属性:
foreach (\Input::get('actionInput', array()) as $entityData)
{
$entity = ContactReportAction::find($entityData["id"]) ?: new ContactReportAction;
$entity->fill($entityData);
$entity->save();
}
检查这是否对您有帮助...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句