我的代码有问题。根据另一篇文章:(Creating Multiple Divs Based on Number Chosen in Drop Down Menu) 我已经为我的代码提出了一些想法,但是有一个问题。我想将创建的div的所有输入插入到我的数据库中,但它仅记录最后一个div的输入。这是我的控制器设置:
$generals= new Instance;
$generalsnames=implode("",$_POST['generalname']);
$generalstime=implode("",$_POST['generaltime']);
$generals->Name= $generalsnames;
$generals->Time= $generaltime;
$generals->save();
你能帮我吗?谢谢你的建议
答案 0 :(得分:0)
在您的HTML(刀片)代码中,在字段名称上添加“ []”。因此,您的字段名称应如下所示:
<input type="text" name="generalname[]">
<input type="text" name="generaltime[]">
代替
<input type="text" name="generalname">
<input type="text" name="generaltime">
因为如果您没有为字段名称指定数组,则只有带有此类名称的div的最后一个值将包含在路由的POST请求中。
然后在您的控制器中:
public function store(Request $request)
{
$input = $request->all();
//you might want to combine your arrays for easier saving
$general_time = array_combine($input['generalname'], $input['generaltime']);
//then you will use foreach statement to save all of your data
foreach($general_time as $general => $time)
{
$generals = new Instance;
$generals->Name = $general;
$generals->Time = $time
$generals->save();
}
}
答案 1 :(得分:0)
@rkg提到您需要在刀片中使用[]
,然后在您的控制器上这就是您的代码。
$input = $request->all();
for($i=0; $i<count($input['generalname']); $i++)
{
$generals= new Instance;
$generals->Name= $input['generalname'][$i];
$generals->Time= $input['generaltime'][$i];
$generals->save();
}
答案 2 :(得分:0)
我知道了。
我混合了@Jovs和@rkg的解决方案。几个星期后,重新启动服务器,我开始工作了。已执行的步骤:
[]
添加到名称标签中$input = $request->all();
for($i=0; $i<count($input['generalname']); $i++){
$generals= new Instance;
$generals->Name= $input['generalname'][$i];
$generals->Time= $input['generaltime'][$i];
$generals->save();
}
我遇到了“数组转换为字符串的问题”。我真的什么都没碰。我刚刚重新启动了服务器,但是后来我开始工作了。