Laravel - 在数据库中存储多个复选框表单值
Posted
技术标签:
【中文标题】Laravel - 在数据库中存储多个复选框表单值【英文标题】:Laravel - Store multiple checkbox form values in database 【发布时间】:2019-02-26 01:24:31 【问题描述】:所以我有这个代码
查看:
<div id="checkboxes">
<input type="checkbox" class="checkbox" name="services" value=" $service->id " id=" $service->id " />
<label class="whatever" for=" $service->id "><p class="serv-text"> $service->service_name + $ $service->price </p></label>
</div>
控制器:
public function store(Request $request)
orders::create(Request::all());
return 'test';
型号:
class orders extends Model
protected $fillable = [
'category',
'services',
'total_price',
'user_id',
'status',
'user_id'];
当我尝试提交表单时,即使我在提交表单时选中了多个框,在服务的数据库中也只有一个数字。 我试图在谷歌上找到一个解决方案,但没有。
【问题讨论】:
【参考方案1】:如果你有多个这样的复选框:
<input type="checkbox" name="services" value="1"/>
<input type="checkbox" name="services" value="2"/>
<input type="checkbox" name="services" value="3"/>
它只会向服务器发送一个值,因为名称必须是唯一的。解决方法是使用数组输入:
<input type="checkbox" name="services[]" value="1"/>
<input type="checkbox" name="services[]" value="2"/>
<input type="checkbox" name="services[]" value="3"/>
然后您可以在控制器中获取该输入并执行以下操作:
$services = $request->input('services');
foreach($services as $service)
orders::create($service);
在 Laravel 中验证数组:
https://laravel.com/docs/5.7/validation#validating-arrays
关于输入数组的更多信息:
https://developer.mozilla.org/en-US/docs/Web/html/Element/input/checkbox#Handling_multiple_checkboxes
How to get form input array into php array
【讨论】:
以上是关于Laravel - 在数据库中存储多个复选框表单值的主要内容,如果未能解决你的问题,请参考以下文章