Laravel表单输入无法传递至控制器问题排查
问题解决办法
核心原因
你那个无法获取值的输入框添加了disabled属性,浏览器默认不会提交带有disabled属性的表单控件值,这就是该输入值无法出现在$request里的直接原因。
修复步骤
把输入框的disabled替换成readonly,这样既保留了“用户不能手动编辑”的效果,又能让表单提交时携带它的值:
<!-- 修改后的问题输入框 --> <input type="text" class="form-control text-center" style="border:0;background-color:#ddc2b1" name="quantity {{$product->id}}" value="{{$product->quantity}}" id="quantity {{$product->id}}" readonly>
readonly仅限制用户手动输入,你现有的add和subtract函数依然可以通过JavaScript正常修改输入框的值。
额外优化建议
输入框的name和id里包含空格,虽然PHP能处理,但不符合前端规范,建议改成下划线连接的格式,避免潜在问题:
name="quantity_{{$product->id}}" id="quantity_{{$product->id}}"
控制器里对应调整为:
$cart_item->quantity = $request->input('quantity_'.$product_id);
内容的提问来源于stack exchange,提问作者RYOK
相关产品推荐
相关产品推荐

