laravelの開発をしていると、クライアントから空文字(”)を送ったときに、サーバー側でnullになってしまうことがありました。

よくよく調べてみると、どうやらlaravel5.4から導入されたミドルウェアによって、空文字リクエストは全てnullに変換されてしまうのでした。

nullではなくて、空文字のままがよい場合は、\app\Http\Kernel.phpのConvertEmptyStringsToNullをコメントアウトすることにより回避できるようになります。

    /**
     * The application's global HTTP middleware stack.
     *
     * These middleware are run during every request to your application.
     *
     * @var array
     */
    protected $middleware = [
        \App\Http\Middleware\TrustProxies::class,
        \App\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
-        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
    ];