雄辩的是Laravel的Active Record模式的实现,它具有所有优点和缺点。
Active Record是用于以CRUD方式处理单个实体的好解决方案-即创建具有填充属性的新实体,然后将其保存到数据库,从数据库加载记录或删除。
您将从Eloquent的功能中受益匪浅,例如脏检查(仅针对已更改的字段发送SQL
UPDATE),模型事件(例如,在有人创建新帐户时发送管理警报或更新统计信息计数器),特征(时间戳,软删除,自定义特征)急切/延迟加载等。您还可以应用域驱动模式并在Active
Record实体中实现一些业务逻辑,例如验证,管理关系,计算等。
但是,正如您已经知道的那样,Active Record附带了一些性能价格。
当您处理一条记录或几条记录时,无需担心。但是对于读取大量记录的情况(例如,用于数据网格,用于报告,用于批处理等),普通的Laravel
DB方法是更好的方法。
对于基于Laravel的应用程序,我们认为合适的是同时使用两种方法。我们使用Laravel的Eloquent for
UI表单来处理一条记录,并使用
DB方法(由SQL视图支持,并进行了其他数据库引擎特定的性能调整)来检索UI表,导出任务等的数据。它还与RESTful
API配合使用-Eloquent for GET ,PUT,POST,DELETE(带键),
DB而GET(不带键)但具有过滤器,排序和分页。



