我正在尝试学习laravel及其进展顺利。但是,关于Eloquent的某些事情对我来说似乎很奇怪。
显然,您应该为每个表创建一个模型,然后进行迁移并向迁移添加新列。
但是,如果我不能在模型类中添加新列而不得不编辑迁移文件,那么首先放置模型类有什么意义呢?
答案 0 :(得分:1)
迁移类似于数据库的版本控制,使您的团队可以轻松地修改和共享应用程序的数据库架构。迁移通常与Laravel的架构构建器搭配使用,以轻松构建您的应用程序的数据库架构。如果您曾经不得不告诉队友将一列手动添加到其本地数据库架构中,那么您将面临数据库迁移所解决的问题。
Laravel附带的Eloquent ORM为使用您的数据库提供了一个漂亮,简单的ActiveRecord实现。每个数据库表都有一个对应的“模型”,用于与该表进行交互。通过模型,您可以查询表中的数据,以及将新记录插入表中。
一个总结是,即使使用版本控制系统或多个环境,迁移也可以使您构建数据库并确保数据库保持不变。模型是您与所述数据库内容进行通信的方式。
结构->迁移
数据->模型
答案 1 :(得分:0)
您的迁移文件包含数据库架构,它们用于创建数据库表。模型用于与这些表进行交互。您的模型扩展了Illuminate\Database\Eloquent\Model
类,该类负责查询数据库的CRUD操作。
您的迁移扩展了Illuminate\Database\Migrations\Migration
类,而Migration
类则负责根据定义的架构创建或删除表和列。
所以回到您的主要问题,将这两种逻辑放在不同的类中是分离这些内容的一种更好的方法。如果将所有逻辑(表创建和CRUD操作)都转储到一个类中,那将不像Laravel中那样完成。
参考文献: