Laravel MongoDB 发布 5.0 版本
官方的 Laravel MongoDB 5.0 版本集成现已发布。这次重大更新引入了破坏性性的更改,以更好地将 MongoDB 集成与 Laravel 的规范和行为保持一致,简化了已经熟悉 Eloquent 的开发人员对 MongoDB 的使用。
新特性
- ID 别名:现在支持将 MongoDB 中
id
自动别名为_id
,消除了需要在模型类中指定protected $primaryKey='_id'
,简化了代码。将代码中的$model->_id
替换为$model->id
。 - 日期处理增强:所有的
DateTimeInterface
对象(包括 Carbon)现在自动转换成 MongoDB 的UTCDateTime
,用于插入及更新操作。类似地,当检索数据时,MongoDB 的UTCDateTime
自动转换成默认时区的 Carbon 日期。这个变更简化了与 MongoDB 的鞋子,减少了自定义 Eloquent casts 的需要。
结果成为对象:MongoDB 的查询结果现在将作为 stdClass
对象而不是数组返回。现在可以使用 $item->name
而不是 $item['name']
访问对象属性。
- 简化的模型自定义:
$collection
已被$table
取代,用于自定 Eloquent 模型中的集合名称,符合 Laravel 惯例。
删除服务提供者:几个特定于 MongoDB 的服务提供者已被删除,包括Auth\PasswordResetServiceProvider
、MongoDBQueueServiceProvider
和Queue\Failed\MongoFailedJobProvider
。这些提供者不再是必需的,因为MongoDB\Connection
现在与 Laravel 的类完全兼容。
连接和日志更新:MongoDB\Laravel\Connection
已被 MongoDB\Connection
取代,查询日志现在使用 MongoDB 监控事件。
可查阅升级指南了解并处理破坏性更新。
资源