在模型中创建新列,而不是进行迁移

时间:2019-07-30 09:31:14

标签: php laravel eloquent

我正在尝试学习laravel及其进展顺利。但是,关于Eloquent的某些事情对我来说似乎很奇怪。

显然,您应该为每个表创建一个模型,然后进行迁移并向迁移添加新列。

但是,如果我不能在模型类中添加新列而不得不编辑迁移文件,那么首先放置模型类有什么意义呢?

2 个答案:

答案 0 :(得分:1)

迁移

迁移类似于数据库的版本控制,使您的团队可以轻松地修改和共享应用程序的数据库架构。迁移通常与Laravel的架构构建器搭配使用,以轻松构建您的应用程序的数据库架构。如果您曾经不得不告诉队友将一列手动添加到其本地数据库架构中,那么您将面临数据库迁移所解决的问题。

Source

模型

Laravel附带的Eloquent ORM为使用您的数据库提供了一个漂亮,简单的ActiveRecord实现。每个数据库表都有一个对应的“模型”,用于与该表进行交互。通过模型,您可以查询表中的数据,以及将新记录插入表中。

Source

结论

一个总结是,即使使用版本控制系统或多个环境,迁移也可以使您构建数据库并确保数据库保持不变。模型是您与所述数据库内容进行通信的方式。

结构->迁移

数据->模型

答案 1 :(得分:0)

您的迁移文件包含数据库架构,它们用于创建数据库表。模型用于与这些表进行交互。您的模型扩展了Illuminate\Database\Eloquent\Model类,该类负责查询数据库的CRUD操作。

您的迁移扩展了Illuminate\Database\Migrations\Migration类,而Migration类则负责根据定义的架构创建或删除表和列。

所以回到您的主要问题,将这两种逻辑放在不同的类中是分离这些内容的一种更好的方法。如果将所有逻辑(表创建和CRUD操作)都转储到一个类中,那将不像Laravel中那样完成。

参考文献:

  1. https://laravel.com/docs/5.8/eloquent
  2. https://laravel.com/docs/5.8/migrations
相关问题