You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中FormData传null值绕过required验证的解决方法

问题原因

当你通过axios发送FormData时,null值会被自动序列化为字符串"null",而Laravel的required验证规则仅会拒绝字段不存在、空字符串、空数组、原生null值、布尔false这些情况。此时后端收到的language字段实际是字符串"null",它属于非空的有效字符串,因此会通过required验证。

解决办法

后端验证调整

直接在验证规则中排除字符串"null":

$request->validate([
    'language' => 'required|not_in:null',
    'image.*' => 'image|mimes:jpg,jpeg,png',
]);

或者更严格地限制为有效字符串(排除空值和"null"字符串):

$request->validate([
    'language' => 'required|string|min:1|not_in:null',
    'image.*' => 'image|mimes:jpg,jpeg,png',
]);

前端数据处理

在构建FormData时,若language为null,则不添加该字段,或者将其转为空字符串:

const formData = new FormData();
formData.append('title', 'hello');
// 处理language字段:值不为null时再添加
if (language !== null) {
    formData.append('language', language);
}
// 或者转为空字符串,让后端required规则拦截
formData.append('language', language ?? '');

这样后端收到的language要么不存在(触发required验证失败),要么是空字符串(同样被required拒绝)。

内容的提问来源于stack exchange,提问作者kralyolda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 19:35:30