所以我得到了这段代码
查看:
<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>
Controller :
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'];
}
当我尝试提交表单时,即使我在提交表单时勾选了多个复选框,服务数据库中也只有一个数字。 我试图在谷歌上找到解决方案,但一无所获。
最佳答案
如果您有多个这样的复选框:
<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"/>
然后您可以在 Controller 中获取该输入并执行如下操作:
$services = $request->input('services');
foreach($services as $service){
orders::create($service);
}
Laravel 中数组的验证:
https://laravel.com/docs/5.7/validation#validating-arrays
关于输入数组的更多信息:
关于javascript - Laravel - 在数据库中存储多个复选框表单值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52447032/