雄辩的模型 - 基于查询而不是表格的模型?

时间:2014-09-16 10:17:24

标签: sql laravel eloquent

我正在Laravel中构建一个应用程序,利用Eloquent ORM来访问本地数据。

此应用程序的部分功能涉及在远程数据库上运行复杂查询。有一些需要运行的固定查询。我是否可以创建Eloquent ORM来访问查询数据,如本地基于表的模型?

通过这个,我的意思是我想在ORM模型中处理像表这样的查询,只是为了方便,而在模型中,查询正在远程数据库上运行以获取数据。这些将是只读模型。

或者我是最好的(来自努力POV)只是运行一个雄辩的SQL查询并直接获取数据,而不是试图将其包装成更抽象的模型?我只是不知道我的方法将与技术设计的雄辩内容相抗衡。

编辑:我宁愿不在远程数据库上创建视图来包装查询,虽然乍一看似乎是一个好主意。

2 个答案:

答案 0 :(得分:1)

我遇到了类似的困境,因为我想为我的应用程序构建一个搜索界面。我决定使用迁移类创建数据库视图,以简化我的部署。我将模型设置为视图的基本原理是避免一组关系。我假设视图只会传输我实际需要的数据并使我的模型更有效率。

为了确保模型保持只读,我遵循了这个例子https://gist.github.com/scrubmx/d21b58e6222e515a3bf7

答案 1 :(得分:0)

最后,我只使用查询构建器对远程数据库构建了查询。这给了我远程数据,而不是Eloquent模型。它达到了它的目的,但我怀疑我将来可能会再次访问它。

最后,它是关于在应用程序的每一层中创建适当数量的抽象,而不会使事情过于复杂。