在带有MongoDB和jenssegers的Laravel 5中,我试图更新文档的Array字段。但这不是更新。
当字段包含Array [2]时,我正在尝试使用Array [1]更新它,但未更新。 另一方面,另一个文档字段正在正确更新。
我检查了情况:
old value | new value | result
---------------------------------
Array(1) | Array(2) | OK
---------------------------------
Array(1) | null | OK
---------------------------------
Array(1) | Array(0) | OK
---------------------------------
Array(2) | Array(1) | NO UPDATE
我的文档如下:
{
"name": "test",
"default": 0,
"variables": [
{
"name": "responsibilities",
"type": "text"
},
{
"name": "requirements",
"type": "text"
}
]
}
还有我的PHP代码(我现在已经以这种方式处理了,但是一点都不优雅)。我想念什么?
$document->name = $name;
$document->default = $default;
$document->variables = []; // there is neccesity to clear this field first, because overriding with smaller array
$document->save(); // is faulty (for ex. when removing one variable)
$document->variables = $variables;
$document->save();