【发布时间】:2021-05-10 19:53:23
【问题描述】:
我已经使用 Laravel 生成了一个 API。
在我的控制器中,我有以下更新功能:
public function update(Request $request, $id)
{
$data = Link::find($id);
$data->title = is_null($request->title) ? $data->title : $request->title;
$data->save();
}
它验证如果接收到的输入为空,它返回默认值,否则它请求新的值的基本原理是什么一个。
这里的问题是,当我使用空值(例如 5 个空格字符)更新输入时,数据库中的输入不会收到新值,因为它认为 空格为空。
我想到了一个解决方案,比如检查接收到的输入中的字符数。就像接收到的字符串是 小于 1 而不是 is_null 然后返回默认值。 对吗?
【问题讨论】:
-
'它认为空间为空'。这不是真的,Laravel 有一个 ConvertEmptyStringsToNull 中间件来删除空格。
-
@Daan 我明白了。那么在这种情况下如何接收空格。
-
你禁用了中间件。
-
@Daan 仅在那个控制器中?如果我在其他地方需要它怎么办?
-
中间件有一个
except属性,你可以定义你想排除哪些路由。