我已经使用 laravel(php mvc 框架)几个星期了。目前,我正在为每个非数据透视表创建一个模型。即使是简单的表格:
id (unsigned int (PK)) | usertype (varchar(20))
1 | guest
2 | member
3 | Moderator
因为它可以更轻松地使用 Eloquent ORM 将我的其他模型与它们关联起来。
我想知道为了利用 ORM 而为如此简单的表创建模型是否正常,或者是否有更好的方法?
目前,我的应用程序正在使用这些表的模型来运行,但我仍然想确保在学习时掌握良好的编码约定。
提前致谢。
最佳答案
这里是长答案:是的!
我不知道 model
何时或为何成为 entity
的同义词,但这会导致困惑。
根据 MVC 发明者 Trygve Reenskaug 在 original MVC article 中的说法:
DEFINITION
A Model is an active representation of an abstraction in the form of data in a computing system
[...]
The models are represented in the computer as acollection of data together with the methods necessary to process these data.
所以,现在很多人(错误地)将模型定义为数据表示、数据存储或其他东西,但这是错误的。
模型处理您的应用程序逻辑,这包括数据抽象、数据存储、数据处理等。
我习惯将我的数据抽象称为实体
,而不是模型
。我的应用程序模型层称为服务
或应用程序模型
。我的存储层仅称为 Storage
等等...所有这些加起来就是我们所说的 Model
澄清了这一点,现在我们可以继续......
You said:
Because it makes it easier to relate my other models to them using the eloquent ORM.
够了!
没有什么可以阻止您使用计划 txt 文件作为存储,但如果您的数据与其他数据相关,那么您应该寻找数据库。
Eloquent 是一种 ORM(对象关系映射),因此它依赖于其背后的数据库。如果使用txt文件,如何通过用户类型恢复用户?
我不习惯框架,但大多数框架都会自动生成实体,你只需要声明它们...
如果某个实体没有业务逻辑,而您只需要存储它,那么您不需要它的“完整模型”。这就是你正在做的事情。
希望我说服了你......
关于php - 极其简单的表格还需要自己的模型类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19919629/