REQUEST有BUG,會把POST的字串""轉為null

從 js 給定一個 foo=””;
ajax 傳送給 laravel 9,使用 $request->all () 檢查 foo 變成 null,使用 $_POST [“foo”] 等於””
然而”” 不等於 null,怎麼回報或處理?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class

1年前 评论
cevin 1年前
qufo 1年前
讨论数量: 8

\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class

1年前 评论
cevin 1年前
qufo 1年前

GPT 回答

在 Laravel 中,当使用 $request->all () 方法获取请求的所有数据时,Laravel 会对传递的数据进行一些默认处理。其中一个处理是将空字符串转换为 null。

这种行为是由 Laravel 的请求处理机制所决定的。当接收到请求时,Laravel 会将请求数据中的空字符串值视为无效数据,并将其转换为 null。这样做的目的是为了帮助开发者更轻松地检测和处理空值。

如果您想在 Laravel 中保留空字符串而不将其转换为 null,您可以使用 $request->input ('foo', '') 方法来获取 foo 参数的值。第二个参数 '' 是一个默认值,如果 foo 参数为空时,将会返回该默认值,而不是 null。这样,您可以明确地指定当参数为空字符串时应该使用的值。

以下是示例代码:

$foo = $request->input('foo', '');

通过这种方式,您可以在 Laravel 中明确地处理空字符串而不是将其转换为 null。

1年前 评论
shunjian_1 1年前

\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class

1年前 评论
cevin 1年前
qufo 1年前

感謝先進們解答,受我一拜 :heart:

1年前 评论
hfxlyf 1年前
xrxb 1年前