第2世界
发布于 2023-04-30 / 15 阅读 / 0 评论 / 0 点赞

laravel中表单提交获取字段会将空值转换为null

原因

按照默认情况来说,比如表单提交,如果我们提交了这个字段,但是这个字段为空字符串。在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') ?? "";

这样不影响原来的逻辑,只不过每次多写几行代码。


评论