编程

Laravel MongoDB 发布 5.0 版本

528 2024-10-11 00:02:00

官方的 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\PasswordResetServiceProviderMongoDBQueueServiceProviderQueue\Failed\MongoFailedJobProvider。这些提供者不再是必需的,因为 MongoDB\Connection 现在与 Laravel 的类完全兼容。

连接和日志更新MongoDB\Laravel\Connection 已被 MongoDB\Connection 取代,查询日志现在使用 MongoDB 监控事件。

可查阅升级指南了解并处理破坏性更新。

资源