是否有必要在 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 中为数据库操作创建模型(用于查询构建器)?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过laravel创建数据透视表

在 laravel 中动态创建刀片

如何在 Laravel 中为 REST API 创建身份验证

Laravel 如何创建数据透视表?

在 Laravel 中为资源控制器添加新方法

在 Laravel 中为父级和子级创建活动类