我正在为一个工作项目在 Laravel 中创建一个 API。我想使用 MongoDB 作为数据库驱动程序,这对我来说是新的。所以我想在开始时将 Eloquent 与 MySQL 结合使用,当我有足够的信心切换到 MongoDB 时。
我正在阅读一些关于 Laravel 中的存储库模式的教程,看到一些返回了一个 Eloquent 模型,比如 this one .在我看来,当返回模型时,例如 create($data)
,您只能使用适合 Eloquent 的数据库驱动程序。我想知道返回一个 Eloquent 模型是否是一个好习惯。因为如果我现在和将来想使用 MySQL MongoDB(没有 Laravel MongoDB 包),我需要在 Controller 中重写一些代码,因为使用 Eloquent 模型而不是数组(例如)。也许模型和代码之间的“包装器”是可能的?对此有什么好的建议、提示或想法吗?
如果你想知道为什么我现在要使用 MySQL,然后再切换到 MongoDB,原因是项目有时间限制。我还在学习Mongo。因此,为了满足我雇主的需求,在完成第一个版本/原型(prototype)之前,我不会使用 MongoDB。
最佳答案
如果你用eloquent和它的方法,你应该不错。只是不要使用 DB::raw()
方法,因为如果它与您当前所在的数据库引擎不匹配,它可能会破坏您的查询。
我写了一个repository pattern如果您想查看文章(使用 tdd)。
但如果你真的想要面向 future 的证明,你可以将 Doctrine 与 Laravel 混合使用,因为 Doctrine 是一种数据映射器模式。 Link
使用 laravel-doctrine 包,您可以将数据保存在您喜欢的数据库引擎中。
关于php - Laravel 中使用 Eloquent 的存储库模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49256739/