php - 保存多个复选框值并使用 Laravel 保存到数据库
问题描述
嗨,我有这个选择复选框,这是我检查所有值是否通过它的时候!现在我的问题是当我保存到数据库中时,它只保存了一个值。这是我的 HTML
<p>Sunday</p>
<input type="checkbox" name="select-all-sunday" id="select-all-sunday" onclick="toggle(this);"> Check All
<br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-1" value="00:00"> 00:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-2" value="1:00"> 1:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-3" value="2:00"> 2:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-4" value="3:00"> 3:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-5" value="4:00"> 4:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-6" value="5:00"> 5:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-7" value="6:00"> 6:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-8" value="7:00"> 7:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-9" value="8:00"> 8:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-10" value="9:00"> 9:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-11" value="10:00"> 10:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-12" value="11:00"> 11:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-13" value="12:00"> 12:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-14" value="13:00"> 13:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-15" value="14:00"> 14:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-16" value="15:00"> 15:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-17" value="16:00"> 16:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-18" value="17:00"> 17:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-19" value="18:00"> 18:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-20" value="19:00"> 19:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-21" value="20:00"> 20:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-22" value="21:00"> 21:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-23" value="22:00"> 22:00 <br>
<input type="checkbox" name="checkbox-sunday[]" id="checkbox-24" value="23:00"> 23:00 <br>
这现在是我的控制器
$sundays = $request->input('checkbox-sunday');
foreach($sundays as $sunday){
echo $sunday.",";
}
现在 echo $sunday 似乎正确地从表单显示传递了值。现在,在保存到数据库中时,只保存了一个值。
下面是我保存到数据库后的代码
$sundays = $request->input('checkbox-sunday');
foreach($sundays as $sunday){
echo $sunday.",";
$postRoom = PostRoom::find($id);
$postRoom->description = $request->get('description');
$postRoom->checkin_date = $request->get('bookingDate');
$postRoom->checkin_time = $request->get('checkinTime');
$postRoom->room_price = $request->get('roomPrice');
$postRoom->day_sunday = $sunday;
$postRoom->your_neighbourhood = $request->get('yourNeighbourhood');
$postRoom->save();
return redirect('add-your-listing/next-step-3/'.$postRoom->id);
}
保存这个的最好方法是什么?有人能帮我吗?TIA。
解决方案
您的问题基于数组到字符串的转换,您可以在读取时保存和检索时使用json_encode()
或json_decode()
转换您的数组,或者对我来说,我使用serialize()
和unserialize()
从数据库中存储和检索数组集作为字符串数据类型。
//read the checkbox input from the form.
$sundaysArray = $request->input('checkbox-sunday');
//while saving
$postRoom->day_sunday = json_encode($sundaysArray) //or
$postRoom->day_sunday = serialize($sundaysArray);
//while reading from database
$sundaysArray = json_decode($postRoom->day_sunday) //or
$sundaysArray = unserialize($postRoom->day_sunday);
无论哪种方式,这都有效。
推荐阅读
- java - 为什么横幅在我的应用程序中不可见?
- java - 如何使用 JPA 存储库更新我的实体中的一个字段
- java - 如何使用 throws 处理运行时错误
- reactjs - 在页面刷新之前反应保存全局状态
- javascript - Ember:如何将 HTML 类绑定到服务属性,使类是动态的
- neo4j - 无法在配置的最长时间 60000 毫秒内从池中获取连接。Neo4J CE 3.5.x Java 驱动程序
- c# - NuGet 元包是否仅保留给 .net 核心?
- vb6 - 系统错误 &H800700C1 (-2147024703) 试图编译 ocx 文件
- javascript - 如何在另一个地图内映射,获取每个第一张地图的索引?
- jenkins - 詹金斯:mercurial scm:clean = false 没有按预期工作