我对这个问题感到困惑。我的代码真的不同,所以我期待不同的结果。但我正在运行表单验证并尝试调用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
。我很困惑。
答案 0 :(得分:0)
在钻取所有codeigniter函数后计算出来。原来在config.php = $config['dbprefix']
内设置了一个数据库前缀。我原以为它是子域名,因为它说的是demo。但前缀也设置为demo。实际上我的设置实际上没有任何问题。