gpt4 book ai didi

php - 如何通过laravel将html表中的数据存储到mysql中

转载 作者:行者123 更新时间:2023-11-29 16:29:14 25 4
gpt4 key购买 nike

我有一个动态可排序表,我可以在其中添加或删除行,例如 enter image description here

enter link description here

现在我正在努力将这些数据插入我的数据库(Mysql)。

这是我的查看页面

<table class="table table-hover table-sortable" id="tab_logic" name="DataTable">
<thead>
<tr class="text-center">
<td style="width: 40%;">Process Name</td>
<td style="width: 30%;">Machine Name</td>
<td style="width: 10%;">Machine Qty</td>
<td style="width: 10%;">SMV</td>
<td style="width: 10%;">Action</td>
</tr>
</thead>
<tbody>
<tr id='addr0' data-id="0" class="hidden">
<td data-name="ProcessName">
{{Form::text('ProcessName', '', ['id'=>'ProcessName', 'class' => 'form-control', 'placeholder'=>''])}}
</td>
<td data-name="MachineName">
<div class="form-group row-fluid m-auto">
<select name="MachineName" class="form-control" id="MachineName" data-live-search="true">
<option value=""></option>
@foreach($machineName as $machineName)
<option value="{{$machineName->id}}">{{$machineName->MachineName}}</option>
@endforeach
</select>
</div>
</td>
<td data-name="MachineQty">
{{Form::number('MachineQty', '', ['id'=>'MachineQty', 'class' => 'form-control', 'placeholder'=>''])}}
</td>
<td data-name="SMV">
{{Form::number('SMV', '', ['id'=>'SMV', 'class' => 'form-control', 'placeholder'=>''])}}
</td>
<td data-name="del">
<a name="del0" id="del0" class="btn btn-outline-danger row-remove" value="del0">Delete</a>
{{-- <button name="del0" class='btn btn-outline-danger row-remove'>Delete</button> --}}
</td>
</tr>
</tbody>

<tfoot>
<tr>
<td colspan="5" style="text-align: left;">
<a id="add_row" class="btn float-right btn-lg btn-block btn-outline-secondary">Add Row</a>
</td>
</tr>
<tr>
<td colspan="5" style="text-align: left;">
{{Form::submit('Save', ['class'=>'btn btn-lg btn-outline-primary btn-block', 'name'=>'ProductInsert'])}}
</td>
</tr>
</tfoot>
</table>

这是我的 Controller

// Create Post
$work_breakdown = new work_breakdown;
$work_breakdown->Buyer = $request->input('Buyer');
$work_breakdown->Style = $request->input('Style');
$work_breakdown->Item = $request->input('Item');
$work_breakdown->Size = $request->input('Size');
$work_breakdown->ThreadType = $request['Thread'];
$work_breakdown->Description = $request->input('Description');
$work_breakdown->ProductImage = $fileNameToStore;
$work_breakdown->user_id = auth()->user()->id;
$work_breakdown->save();


$maxValue = work_breakdown::max('id');
$i = 0;
$ProcessName_ID = $request->input('MachineName');
foreach($ProcessName_ID as $key => $MachineName) {

$i++;
// Create Post
$work_breakdown = new work_breakdown;
$work_breakdown->ProductID = $maxValue;
$work_breakdown->MachineID = $MachineName;
$work_breakdown->ProcessName = $request->input('ProcessName');
$work_breakdown->MachineQty = $request['MachineQty'];
$work_breakdown->SMV = $request['SMV'];
$work_breakdown->user_id = auth()->user()->id;
$work_breakdown->save();
}

我发现这个错误:“为 foreach() 提供的参数无效”

enter image description here

最佳答案

当我第一次开始传递数组作为表单输入时,这是一个棘手概念的典型示例。它是 this question 的变体,但您可以将其留空以创建 0 索引数组,而不是定义键。

您的表单中的每一行都需要有一个“类似对象”的格式。在 JSON 中,您需要将其发送到服务器:

[
{
"ProcessName": "First process",
"MachineID": "123",
"MachineQty": "1",
"SMV": "10"
},
{
"ProcessName": "Second process",
"MachineID": "456",
"MachineQty": "2",
"SMV": "20"
}
]

要在 html 中实现此目的,您需要使用 html 输入的 name 属性。

<tr id='addr0' data-id="0" class="hidden">
<td data-name="ProcessName">
{{Form::text('items[][ProcessName]', '', ['id'=>'ProcessName', 'class' => 'form-control', 'placeholder'=>''])}}
</td>
<td data-name="MachineName">
<div class="form-group row-fluid m-auto">
<select name="items[][MachineName]"
class="form-control"
id="MachineName"
data-live-search="true">
<option value=""></option>
@foreach($machineName as $machineName)
<option value="{{$machineName->id}}">{{$machineName->MachineName}}</option>
@endforeach
</select>
</div>
</td>
<td data-name="MachineQty">
{{Form::number('items[][MachineQty]', '', ['id'=>'MachineQty', 'class' => 'form-control', 'placeholder'=>''])}}
</td>
<td data-name="SMV">
{{Form::number('items[][SMV]', '', ['id'=>'SMV', 'class' => 'form-control', 'placeholder'=>''])}}
</td>
<td data-name="del">
<a name="del0" id="del0" class="btn btn-outline-danger row-remove" value="del0">Delete</a>
</td>
</tr>

在您的 Controller 中,您现在可以通过执行以下操作来循环访问每个项目:

//  ... initial setup here

foreach($request->input('items', []) as $item){
$work_breakdown = new work_breakdown($item);
// do other logic and then save to database
}

希望这有帮助!

关于php - 如何通过laravel将html表中的数据存储到mysql中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54044189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com