Laravel:HTML数字输入框提交后控制器获取值为null的解决办法
解决Laravel中无法获取number输入值的问题
嘿,我一眼就瞅到问题根源啦😉!你的HTML输入框里藏着个小错误,直接导致控制器拿不到值。
核心问题:字段名的多余单引号
先看你的input代码:
<input type="number" class="form-control" name="'svdk_khoa" id="'svdk_khoa" value="{{old('svdk_khoa')}}">
注意到name="'svdk_khoa"开头多了个单引号吗?这会让表单提交的字段名变成'svdk_khoa(带单引号),而你在控制器里用$request->svdk_khoa获取的是不带单引号的字段,自然就返回null了。
第一步:修正HTML属性
把多余的单引号删掉,改成正常的字段名:
<input type="number" class="form-control" name="svdk_khoa" id="svdk_khoa" value="{{old('svdk_khoa')}}">
现在表单提交的字段名和控制器调用的名称完全匹配,就能正确拿到输入的数值了。
额外排查小技巧(如果还是有问题)
- 检查表单是否用了
POST方法,且包含@csrf指令(Laravel要求POST表单必须带csrf令牌,否则请求会被拦截,也可能导致拿不到值)。 - 在控制器里先打印所有请求数据,确认字段是否存在:
public function store(Request $request) { dd($request->all()); // 输出所有提交的表单数据,看看有没有svdk_khoa字段 // 后续逻辑... } - 确保你的模型
sinhviendk里,$fillable数组已经包含'svdk_khoa',否则即使赋值成功,也不会保存到数据库哦。
内容的提问来源于stack exchange,提问作者Thanh Toàn
相关产品推荐
相关产品推荐

