Codeigniter表单验证is_unique似乎是将子域添加到表名

Codeigniter表单验证is_unique似乎是将子域添加到表名

问题描述:

我对这个问题感到困惑。我的代码非常不同,所以我期望得到不同的结果。但我正在运行表单验证并尝试调用is_unique函数。但它似乎将我的子域添加到查询中的表名。而对于我的生活,我无法弄清楚为什么。Codeigniter表单验证is_unique似乎是将子域添加到表名

我有一个库类,设置了它需要在这里

protected function settablecolumnattributes(){ 
    $this->addcolumnattributes(
     array(
      "name" => "user_login", 
      "type" => "VARCHAR", 
      "length" => "255", 
      "default" => "NULL", 
      "collation" => "", 
      "attributes" => "", 
      "null" => "", 
      "index" => "", 
      "autoincrement" => "", 
      "comments" => "", 
      "width" => "", 
      "sortable" => "true", 
      "control" => array(
       "type" => "textbox", 
       "label" => "User Login", 
       "id" => "", 
       "class" => "", 
       "placeholder" => "Enter a Username", 
       "validations" => "required|is_unique[blah.user_login]" 
      ), 
      "visible_on_form" => true, 
      "visible_on_table" => true 
     ) 
    ); 
} 

那么我收集所有的控制验证的位置并将其输出的控制。

public function set_object_form_validations(){ 
    $fields = $this->getcolumnattributes(); 

    foreach($fields as $field): 
     $visible_on_form = property_exists($field, "visible_on_form"); 
     if($visible_on_form !== false): 
      if($field->visible_on_form !== true): 
       continue; 
      endif; 
     endif; 
      $this->CI->form_validation->set_rules($field->name, $field->control['label'], $field->control['validations']); 
    endforeach; 
} 

现在当验证遇到is_unique我得到这个错误

Error Number: 1146 
Table '12385468.demo_blah' doesn't exist 
SELECT * FROM `demo_blah` WHERE `user_login` = 'joe' LIMIT 1 
Filename: libraries/Form_validation.php 
Line Number: 1125 

我使用测试网址是这样demo.example.com/admin/users/add

我走进表单验证文件,并试图追溯这个问题,但它只是越来越深入到CI功能。 $table存在的每个点只是说blah,但您可以在查询中看到它表示demo_blah。我很困惑。

在钻取所有代码化函数后,将其计算出来。原来在config.php = $config['dbprefix']内有一个数据库前缀集。我原以为这是子域,因为它说的是演示。但前缀也设置为演示。实际上查询只是我的设置没有问题。