首页 > 解决方案 > 如何通过 laravel 在 JSON 数据库字段中存储具有 NULL 值的键?

问题描述

想象一下:

<input name="bank[account]">
<input name="bank[name]">
<input name="bank[status]">

所有这些字段都以 JSON 格式存储在数据库中的列中。

我使用 Laravel$casts将这个字段作为数组引入:

protected $casts = [
    'bank' => 'array',
]

现在问题已全部解决,当用户没有填写其中一些内容时,数据库中没有存储任何内容,当我尝试向用户显示存储的值时出现bank[]错误。nullableUndefined index

我需要像这样在数据库中存储EmptyNULL输入字段"Key":NULL。在这种情况下,它应该是这样的:

{"name":NULL,"account":NULL,"status":NULL}

我使用Laravel 5.7表单请求验证来处理我的表单。

标签: phpjsonajaxlaraveleloquent

解决方案


解决方案:
只需使用此中间件

\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,

注意:这个中间件是默认的 laravel 中间件之一。你不需要做任何事情来使用它。我不知道为什么它一开始不起作用,但过了一段时间却没有改变任何东西!


推荐阅读