用THINKPHP做站群系统遇见的一个BUG

浏览:1488 发布日期:2017/09/04 分类:ThinkPHP5专区
公司需求设计一个站群系统,设计中每个表有一个sys_id字段用于判断每个网站的操作。
所以设计的时候使用了一个公共模型commonnamespace app\manage\model;
use think\Model;
class Common extends Model
{
    public function __construct($data = []){
        parent::__construct($data);
        $this->where('sys_id='.session("_SYSID_"));
    }
    
    public function save($data = [], $where = [], $sequence = null){
        $data['sys_id']=session("_SYSID_");
        parent::save($data, $where, $sequence);
    }
}
Article模型namespace app\manage\model;
use think\Model;
class Article extends Common
{
    protected $verify = [
            ['title','require|unique:Article,title^category_id',"标题不能为空|标题已经存在"]
    ];
        public function add($data){
        $this->allowField(true);
        return $this->validate($this->verify)->save($data);
    }
执行验证的时候Validate.php文件842行编译的SQL结果是
( SELECT `id` FROM `dcit_article` WHERE ( sys_id=2 ) AND ( sys_id=2 ) AND `title` = 'dasfad'
AND `category_id` = 0 );
如果公共模型里面使用数组的方式传递如下
$this->where(array('sys_id'=>session("_SYSID_"))
则出现( SELECT `id` FROM `dcit_article` WHERE ( sys_id=[2,2] ) AND `title` = 'dasfad' 报错。希望thinkphp团队加以改善。
最佳答案
评论( 相关
后面还有条评论,点击查看>>