【发布时间】:2020-04-10 21:23:26
【问题描述】:
我实际上是在发现 Laravel(我已经使用 symfony 多年),但我遇到了一种情况,我不知道我是否只是找不到正确的信息,或者这只是 Laravel 的方式。
在 Symfony 中创建模型时,您将属性放入模型类中。实际上,这些属性代表 ORM 表的不同列。
现在在 Laravel 中,我看到所有人都没有将这些属性放在模型类中,而是放在迁移文件中。因此,应该为新项目做出贡献的新开发人员将不得不查看数据库或迁移文件。在我看来这不是 ORM 的规则:“让开发者思考类而不是表”
有人能说明一下这一点吗?
谢谢
【问题讨论】:
-
虽然这可能是一个有趣的讨论,但这种基于意见的问题对于 Stack Overflow 来说完全是题外话。另一方面,如果开发人员应该思考类,那么为什么要将数据库信息放在类本身呢?
-
这是由于与 Doctrine 和 Eloquent ORM 的方法不同。 Doctrine 是一个数据映射器 ORM,其中您的属性与 db 中的列匹配,而 Eloquent 是一个 Active Record。在 Eloquent 中,您的字段直接来自数据库。
-
有些人喜欢在他们的 Eloquent 模型上使用
@propertydocblocks 来显示和输入模型包含的属性的提示
标签: php laravel symfony eloquent orm