关于laravel之增强Schema数据迁移

2022-05-15 0 508

下面由Laravel教程栏目给大家介绍laravel之增强Schema数据迁移,希望对需要的朋友有所帮助!

关于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的对象

关于laravel之增强Schema数据迁移

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

关于laravel之增强Schema数据迁移

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

关于laravel之增强Schema数据迁移

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

关于laravel之增强Schema数据迁移

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

关于laravel之增强Schema数据迁移

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

关于laravel之增强Schema数据迁移

关于laravel之增强Schema数据迁移

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

关于laravel之增强Schema数据迁移

关于laravel之增强Schema数据迁移

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

关于laravel之增强Schema数据迁移

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

关于laravel之增强Schema数据迁移

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

【声明:根据2013年1月30日《计算机软件保护条例》2次修订第17条规定: 为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存 储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬! 鉴于此,也希望大家按此说明研究软件!】
本站所有源码尽量保证原汁原味,如有特殊情况会作出声明及标注,网站资源不做任何二次加密(原版加密除外,不影响程序使用的不会做解密处理),方便您更好的学习参考。 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

即刻码站__国内靠谱的站长资源下载平台 php教程 关于laravel之增强Schema数据迁移 https://www.jike1995.com/36452.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务