问题描述 ThinkPHP3.1.3

当使用TP的分库分表后 有些地方需要使用Model自动验证create,当验证唯一性unique会出现BUG,

具体描述

因为自动验证检测唯一性会使用隐式的使用find方法,同时find方法会清空重置options, $this->options = [];

这样就清除了分表的表名,

当create后再执行add或者save的操作会提示找不到表名,

解决方案

  1. 当然先再调用create之前先设置分表的一些信息,然后create后再次设置一次,会有点麻烦.
  2. 从Thinkphp3.2上找到的解决方案.

    在Thinkphp3.1.3的Lib/Core/Model.class.php

    在方法_validationFieldItem的find调用那一行上下分别加上
$options = $this->options;
if ($this->where($map)->find()) {
return false;
}
$this->options = $options;

最新文章

  1. Linux 查看服务器开放的端口号
  2. 初试Scala解析XML
  3. Windows XP发行12周年,我正步入中年,你已垂暮
  4. Cloud Design Patterns Book Reading(undone)
  5. DAX 2009 for Retail's P job does not work after restoring AX database from another environment.
  6. 二分图最大匹配的König定理及其证明
  7. ORACLE添加作业
  8. ggts下载地址
  9. POJ 3468 A Simple Problem with Integers //线段树的成段更新
  10. javascript 绝对路径工具类
  11. 文档数据库RavenDB-介绍与初体验
  12. Django学习(一)---基本配置及创建项目、应用
  13. 8.13.2 TreeSet实现Comparable接口的两种方式
  14. JAVA Scanner的简单运用
  15. Python单元测试框架之pytest 4 -- 断言
  16. Windows核心编程:第12章 纤程
  17. Hive使用SequenceFile存储数据
  18. jsTree问题
  19. python3 UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f9e0' in position 230: illegal multibyte sequence
  20. Python学习:13.Python正则表达式

热门文章

  1. bootstrap checkbox
  2. 检測wifi是否须要portal验证 公共场所wifi验证
  3. Python面向切面编程-语法层面和functools模块
  4. c.vim的安装和使用
  5. Oracle-基本SQL语句
  6. JavaScriptResult
  7. Java基础9一面向对象
  8. 利用JavaScript实现文本框改文字功能
  9. 用Navicat自动备份mysql数据库
  10. VHDL_LIB之DFF