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

Php 在模型中创建新列而不是迁移,php,laravel,eloquent,Php,Laravel,Eloquent,我正在努力学习拉威尔,它进展顺利。但在我看来,雄辩确实有些奇怪 显然,您应该为每个表创建一个模型,然后进行迁移并向迁移中添加新列 但是,如果我不能在模型类中添加新列,并且必须编辑迁移文件,那么将模型类放在首位又有什么意义呢?Migrations 迁移类似于数据库的版本控制,允许团队轻松修改和共享应用程序的数据库架构。迁移通常与Laravel的schema builder配合使用,以轻松构建应用程序的数据库模式。如果您曾经告诉队友手动向其本地数据库模式添加列,那么您就面临着数据库迁移所解决的问题

我正在努力学习拉威尔,它进展顺利。但在我看来,雄辩确实有些奇怪

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

但是,如果我不能在模型类中添加新列,并且必须编辑迁移文件,那么将模型类放在首位又有什么意义呢?

Migrations 迁移类似于数据库的版本控制,允许团队轻松修改和共享应用程序的数据库架构。迁移通常与Laravel的schema builder配合使用,以轻松构建应用程序的数据库模式。如果您曾经告诉队友手动向其本地数据库模式添加列,那么您就面临着数据库迁移所解决的问题

模型 Laravel附带的雄辩的ORM为使用数据库提供了一个漂亮、简单的ActiveRecord实现。每个数据库表都有一个相应的“模型”,用于与该表交互。模型允许您查询表中的数据,以及向表中插入新记录

结论 概括地说,迁移允许您构建数据库并确保数据库保持不变,即使您使用的是版本控制系统或多个环境。模型是您与所述数据库内容通信的方式

结构->迁移


Data->model

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

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

回到你的主要问题,把这两个逻辑放在不同的类中是一个更好的分离方法。如果将所有逻辑(表创建和CRUD操作)都转储到一个类中,那么就不会像在Laravel中那样干净了

参考资料:


  • 模型将链接数据库表,迁移是为了模式迁移纯粹是为了编辑表模式(结构)。该模型用于查询和操作该表中的数据。您可以使用不带模型的迁移,反之亦然。如果确实添加了带有迁移的列,则很可能无论如何都需要更新模型,例如更新
    $filleble
    $casts
    属性,但根据您设置模型的方式和列是什么,您可能不需要这样做。