在laravel中有个中间件,叫ConvertEmptyStringsToNull,他自动把表单里允许为空的字段在提交后转换为null,这就导致查询的时候使用where条件时出现问题,如where(‘filed’,’=’,”)查不到null的记录,而where(‘field’,’=’,null)也查不到空字符的记录。
解决办法:
注销Kernel.php(app/Http/Kernel.php)中的ConvertEmptyStringsToNull中间件,然后把已经在数据库中的null值置空。
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\App\Http\Middleware\TrustProxies::class,
\Illuminate\Http\Middleware\HandleCors::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
// \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, //注销这行即可
];

飞虫博客

