帮助将数组写入数据库。这里有张桌子。存在与数据库的连接。该表单具有与数组相同的数据(日期、数字、名称)的字段,并且有动态创建的字段。表格:
<form>
<table>
<tr>
<td><input name='datestamp[]'/><input name='numbe[]r'/><input name='name'[]/>
</tr>
<tr>
<td><input name='prod[]'/><input name='artikul[]'/><input name='price[]'/><button>ДОБАВИТЬ СТРОКУ</button>//ДИНАМИЧЕСКИЕ ПОЛЯ
</tr>
</table>
<input type="hidden" name='prod_id]'>
<button type="submit'>Send</button>
</form>
一段控制器代码:
public function insert(Request $request){
$id= $request->input('prod_id');
$datestamp= $request->input('datestamp');
$number= $request->input('number');
$name= $request->input('name');
$prod= $request->input('prod');
$artikul= $request->input('artikul');
$price= $request->price('artikul');
foreach ($request as $id){
DB::insert('insert into supplys (datestamp,number,name,prod,artikult,price)
values(?,?,?,?,?,?,?,?,?,?,?)', [$datestamp,$number,$name,$prod,$artikul,$price])
};
return redirect () -> route ( 'new' );
}
我在控制器中试过这个:
$price= $request['artikul']
数组到字符串的转换错误。JSON 不适合 - 在示例中,截断形式。实际上,它要大得多,并且 acc 中需要每个元素。表列。错误在哪里?感谢任何想法!
请注意,您的表单中有几个错误(可能是因为匆忙而在此社区中插入代码时发生的):
numbe[]r=number[]'name'[]='name[]''prod_id]'='prod_id[]'type="submit'=type="submit"Forgot the semicolon in
DB::insert('insert into supplys (datestamp,number,name,prod,artikult,price) values(?,?,?,?,?,?,?,?,?,?,?)', [$datestamp,$number,$name,$prod,$artikul,$price]);也不清楚您使用的目的是什么
foreach ($request as $id){虽然$id在你它不在任何地方使用。您收到的数据是数组,因为您可以有多个数据字段(通过“添加行”添加)。
所以需要使用数组迭代的方式,
可以试试下面的方式:
工作代码:
0 - 在枚举中数据是单数的。