Jenssegers MongoDB 可填充的点符号

Jenssegers MongoDB dot notation in fillable

我正在尝试让点符号在 Jenssegers MongoDB 包中为 Laravel 工作。根据这个issue,它已经实现了:

link

不过最新版本好像不行了

protected $fillable = ['title', 'some.data'];

无效。但是如果我全部打开它就可以正常工作。

protected $guarded = [];

这样就可以了,不确定这个功能是否仍然存在,或者我现在需要手动预过滤我的字段吗?

$fillable 目前不支持嵌套字段。

不幸的是,这意味着您必须手动完成。有两种方法: 如果你有一个嵌入式 Some 模型,你可以在上面设置 $fillable,create/fill 它带有新数据,然后将它附加到父模型。

如果您没有 have/want 为您的子文档创建一个完整的单独模型,则您必须定义例如$someFillable = ['data']; 并使用它来过滤新的 $some 数据,然后再在模型上手动设置它。您基本上可以在其 fill 方法中复制 Eloquent 的操作方式。