最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

关于laravel之增强Schema数据迁移

来源:懂视网 责编:小采 时间:2020-11-02 18:25:28
文档

关于laravel之增强Schema数据迁移

关于laravel之增强Schema数据迁移:下面由Laravel教程栏目给大家介绍laravel之增强Schema数据迁移,希望对需要的朋友有所帮助!构想:再重构公司的项目的时候呢,每次创建一个迁移类新增一个数据表的时候,都需要指定新增 deleted_at, created_at, updated_at, last_oper
推荐度:
导读关于laravel之增强Schema数据迁移:下面由Laravel教程栏目给大家介绍laravel之增强Schema数据迁移,希望对需要的朋友有所帮助!构想:再重构公司的项目的时候呢,每次创建一个迁移类新增一个数据表的时候,都需要指定新增 deleted_at, created_at, updated_at, last_oper
下面由Laravel教程栏目给大家介绍laravel之增强Schema数据迁移,希望对需要的朋友有所帮助!

构想:

再重构公司的项目的时候呢,每次创建一个迁移类新增一个数据表的时候,
都需要指定新增 deleted_at, created_at, updated_at, last_operater, last_operater_id
这五个字段,分别记录着 每一行的 删除时间,新增时间,修改时间,最后操作人名,最后操作人id,

因此,能不能让他自动创建这些字段,而无需我自己来手动复制粘贴代码呢?有时候还忘记了呢!!

  • 第一次:进行给Schema增强功能,也就是在原有的 创建迁移文件命令: php artisan make:migration 增强这个功能,但是发现在composer 安装的 laravel-admin的时候呢,很多的迁移文件 引发冲突的问题。
  • 第二次:为了解决这个冲突问题,进行第二次试验:既然不能再原有命令上增强Schema的功能,那么我们增加一个命令吧php artisan make:app_migration
  • 然而 以下对 第二次试验的解说。

    1. 下图,再 app/Facade下新增了一个Schema类, 定义了两个 获取mysql的链接的方法,该方法,从容器中获取db_extra的对象

    企业微信截图_15989382555809.png

    2. 接着 再 app/providers/下新增一个db的服务器提供者,用于定义 $app['db_extra']服务容器 是怎么获取这个对象的

    企业微信截图_15989382646815.png

    3. 分析下图二的其中的内容。->single 单例实例一个 工厂类,用来生产db_extra类的, 如图三,这个工厂类放到以下图中

    企业微信截图_15989382718075.png

    4. 接着分析下 这个工厂类,进行继承系统的生产工厂的类,进行修改其功能, 如这一次,如果是连接的mysql服务连接对象呢,我就让他实例化我自己定义的msyql连接对象, 如图4

    企业微信截图_15989382772555.png

    5. 接下来,再这个MysqlExtraConnection.php类中,我重新覆盖父类的方法,当执行命令新增迁移类的时候,按照我定义的迁移模板来创建一个迁移文件

    企业微信截图_15989382836799.png

    6. 接下来,定义我们自己想默认新增的字段吧, 如图6

    企业微信截图_15989382916322.png

    企业微信截图_15989382997057.png

    7. 接下来,定义一个叫 make:app_migration的命令, 注意下面第二张图 MigrationCreatorExt 依赖注入了自己新增的类,这个类用来干嘛的呢?用来输出字符窜到 新增的迁移文件中,

    企业微信截图_15989383067709.png

    企业微信截图_1598938315687.png

    8. 有创建模板,修改模板,如下图

    企业微信截图_1598938322143.png

    9. 其中在create.stub这个模板呢,我默认让他调用我定义的Schema类,并且 注释中备注了,默认增加的字段

    企业微信截图_15989383292162.png

    10. 大功告成,配置起来有点麻烦,但是确实挺好扩展的, 还有什么更好的方法吗,谢谢评论里讨论,嘿嘿

    声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文档

    关于laravel之增强Schema数据迁移

    关于laravel之增强Schema数据迁移:下面由Laravel教程栏目给大家介绍laravel之增强Schema数据迁移,希望对需要的朋友有所帮助!构想:再重构公司的项目的时候呢,每次创建一个迁移类新增一个数据表的时候,都需要指定新增 deleted_at, created_at, updated_at, last_oper
    推荐度:
    标签: 迁移 数据 增强
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top