为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
哆啦的时光机 2021-11-05 10:58:49
我正在尝试学习 Laravel 并且进展顺利。但我觉得 Eloquent 有一些很奇怪的地方。显然,您应该为每个表创建一个模型,然后进行迁移并向迁移添加新列。但是如果我不能在模型类中添加新列并且必须编辑迁移文件,那么首先拥有模型类有什么意义呢?
查看完整描述

2 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

迁移

迁移就像数据库的版本控制,允许您的团队轻松修改和共享应用程序的数据库架构。迁移通常与 Laravel 的模式构建器配对,以轻松构建应用程序的数据库模式。如果您曾经不得不告诉团队成员手动将一列添加到他们的本地数据库模式,那么您就会遇到数据库迁移解决的问题。

来源

楷模

Laravel 中包含的 Eloquent ORM 提供了一个漂亮、简单的 ActiveRecord 实现来处理你的数据库。每个数据库表都有一个对应的“模型”,用于与该表进行交互。模型允许您查询表中的数据,以及向表中插入新记录。

来源

结论

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

结构 -> 迁移

数据 -> 模型


查看完整回答
反对 回复 2021-11-05
?
慕容森

TA贡献1853条经验 获得超18个赞

您的迁移文件包含数据库架构,它们用于创建数据库表。模型用于与这些表进行交互。您的模型扩展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


查看完整回答
反对 回复 2021-11-05
  • 2 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信