是否有必要在 laravel 中为数据库操作创建模型(用于查询构建器)?
Posted
技术标签:
【中文标题】是否有必要在 laravel 中为数据库操作创建模型(用于查询构建器)?【英文标题】:Is it necessary to create model's for database operations in laravel(for query builder)? 【发布时间】:2017-06-24 22:11:59 【问题描述】:我是 laravel 的新手。是否有必要在 laravel 5 中为数据库操作创建模型。我要求 查询构建器而不是 Eloquent ORM。在一些教程中,我看到他们在控制器中执行数据库查询,这就是为什么我问是否可以或创建任何模型更好?
【问题讨论】:
一张桌子,一种型号。因此,如果您打算拥有一张以上的桌子,您可能会这样做,那么您需要一个用于该桌子的模型。不管你使用的是 Eloquent 还是 Query builder。是的,您可以在控制器中执行查询。 如果我可以在控制器中执行查询,我为什么需要模型或者创建模型需要什么? @安德鲁 这取决于队友,意味着如果你有一些在整个项目中通用的功能,制作通用模型或控制器,如果它是特定于表的,那么最好写在它的相关模型中 @prudhvi259 您可以在单个类文件中编写整个应用程序。但这不是编写良好结构化、可读性和可扩展代码的正确方法。这就是这些框架带有 MVC 结构的原因。所以看看 MVC 模式,也看看 SOLID 编程实践。 【参考方案1】:这是一个关于对象编程的哲学问题。
个人意见如下:
在 Laravel 中,您可以使用查询构建器直接查询表,您不需要任何 Eloquent 模型。
对于简单的情况,即一个小的api,查询生成器就足够了。
在更复杂的应用程序中,当您有包含关系和一些逻辑的表时,ORM 和/或一些 Repositories 类可能是要走的路,不是因为它们是必须的,而是因为它们可以帮助您保持思维井井有条.
【讨论】:
Laravel 不强制你使用 ORM 或 Fluent Query builder。我的观点在上面解释过,我都满意地使用了。如果您需要建议,请尽可能使用 ORM,如果您对使用 ORM 的某些查询感到不舒服,则可能需要一个 Repository 类。以上是关于是否有必要在 laravel 中为数据库操作创建模型(用于查询构建器)?的主要内容,如果未能解决你的问题,请参考以下文章