原因
按照默认情况来说,比如表单提交,如果我们提交了这个字段,但是这个字段为空字符串。在Laravel中会自动转义成Null。这个为什么呢?
原来Laravel有个全局中间件,代码如下:
<?php
namespace Illuminate\Foundation\Http\Middleware;
class ConvertEmptyStringsToNull extends TransformsRequest
{
/**
* Transform the given value.
*
* @param string $key
* @param mixed $value
* @return mixed
*/
protected function transform($key, $value)
{
return is_string($value) && $value === '' ? null : $value;
}
}
该中间件就会将空的参数值自动转为null。
解决办法
$user->group = $request->input('group') ?? "";
这样不影响原来的逻辑,只不过每次多写几行代码。