slowlyo
slowlyo
> 建议移除获取所有database.connections 的链接名称,config('database.connections', [])获取的是合并框架配置的链接,是所有数据库驱动的默认值都返回了,如果驱动报错 php 也无法捕获错误就会中断,mac 下必现,mysql 也会。 > > 1. 这里改成读取默认链接 > 2. 页面改成可输入新内容的下拉框,支持自定义链接 感谢反馈 不过这个地方还需要考虑其他情况, 比如: - 应用连接了多个数据库, 需要操作的表分布在不同的数据库中 - 后台管理面板独立一个数据库, 但不是应用的默认数据库 - 框架有多模块功能, 不同的模块可能存在不同的数据库中
> 而且正常情况下,只有管理后台相关代码才需要代码生成,其他模块使用的数据库也用不到。 这就有点以偏概全了, 你觉得这是正常情况 就像我觉得正常情况下不应该出现数据库连接错误的情况 :)
> > > 而且正常情况下,只有管理后台相关代码才需要代码生成,其他模块使用的数据库也用不到。 > > > > > > 这就有点以偏概全了, 你觉得这是正常情况 就像我觉得正常情况下不应该出现数据库连接错误的情况 :) > > 你理解错了,不是配置错误才有问题。例如使用 pgsql 这个驱动作为数据库,但是现在这个依赖或循环所有 database.connects. 而这里的配置会返回 mysql, sqlite。。。这些不使用数据库配置,所有 100% 会报错。比如代码看着像是有过滤,其实过滤是没有效果的。 > > ``` > //...
> 配置没有问题,只是不用 MySQL 而已,不说 pgsql 这种数据库,换成mariadb兼容 mysql都错啊,你在看看我贴出来的代码,是硬编码判断 mysql 的。如果你测试没有问题可能是只用了env下DB_HOST等作为数据配置,你的系统只有一个数据库,刚好赋值了 laravel 框架默认而已。   pgsql 作为默认数据库, 有什么问题?
> 你删除DB_HOST 相关配置试试,不要让 mysql 配置起作用  嗯哼~
> 那就是你的环境能正常try 了 mysql 驱动的错误。我的mac m1 在 php84, php83 下new PDO 后就中断,没有机会try Error 试试 8.2 呢
> mac m3 8.2 有问题 > 那就是你的环境能正常try 了 mysql 驱动的错误。我的mac m1 在 php84, php83 下new PDO 后就中断,没有机会try Error  检查一下
> 我现在就是 fork 了你的代码,直接加了个配置 admin.database.generator 跳过错误了,严格来说不是你的代码导致,而是 PDO 无法抛出异常导致了代码中断。 > > 楼上发生的错误建议重新编译 php。mac 现在系统依赖一团糟糕 brew 官方维护php基本全错了。使用全依赖静态编译才能正常使用。 > > `spc build --build-cli --build-fpm "apcu,bcmath,calendar,ctype,curl,dba,dom,exif,fileinfo,filter,gd,iconv,intl,mbregex,mbstring,mysqli,mysqlnd,opcache,openssl,pcntl,pdo,pdo_mysql,pdo_pgsql,pgsql,phar,posix,readline,redis,session,simplexml,sockets,sodium,tokenizer,xml,xmlreader,xmlwriter,xsl,zip,zlib" --with-libs="libjpeg,freetype" --debug` 原来是贫穷让我规避了这个错误 😏
这个问题太坑了 什么时候修复啊