【问题所在】
PbootCMS在添加扩展字段时会自动为字段创建索引,当字段数量超过一定限制时就会触发MySQL的64键限制。这个逻辑有问题:判断条件是 != 'TEXT' 或 != 'datetime',实际上几乎所有类型都会创建索引(包括varchar类型)。
【解决方案】
找到/apps/admin/controller/content目录下的ExtFieldController.php文件在大约117行 // 字段不存在时创建,其中的添加索引部分,可以去掉。
// 只保留添加字段,不创建索引
$result = $this->model->amd("ALTER TABLE ay_content_ext ADD $name $mysql NULL COMMENT '$description'");
具体解决方案及代码修改
就这么简单的一套操作下来,你的网站管理后台可以不受到限制,还能再增加模型字段的扩展字段数据。
好了,本次分享仅作记录,也帮助后来者如果遇到相似问题提供一个解决思路。
版权声明
本站内容如无特别说明,均为原创,受《中华人民共和国著作权法》保护。转载请联系博主,未经授权禁止转载。图片素材或源自互联网,不会打码隐藏,版权归原作者所有。
内容授权请联系:xwx-jacky@foxmail.com
本内容网址:https://xuweixuan.com/blog/codes/101.html
CC BY-NC-SA 4.0协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可
人类创作承诺
承诺非AI创作,由人类作者独立完成
著作权信息
著作权人:徐伟轩
首次发表时间:2025-12-01
首次发表平台:"徐伟轩博客"
转载须知:商业用途需获得授权,个人转载请注明原文链接。
评论
安全提示
您将要访问:
我们无法验证此外链的网页内容是否合规,我们亦不对此网页进行任何内容负责,请注意甄别安全性!
发表评论