codeigniter从1.5.4升级到新版本set_fields()错误

时间:2011-12-30 18:20:37

标签: php class codeigniter object

    $fields['password']         = "Password";
    $fields['confirm_password'] = "Confirm Password";
    $fields['customer_number']  = "Customer Number";
    $fields['customer_password']  = "Customer Number";
    $fields['first_name']       = "First Name";
    $fields['last_name']        = "Last Name";
    $fields['company_name']     = "Company Name";
    $fields['email_address']    = "Email Address";
    $fields['confirm_email']    = "Confirm Email Address";
    $fields['phone_number']     = "Phone Number";
    $fields['street']           = "Street Address";
    $fields['city']             = "City";
    $fields['zip_code']         = "Zip Code";
    $fields['state']            = "State";
    $fields['country']          = "Country";

    $this->form_validation->set_fields($fields);

我收到了错误

**致命错误:调用未定义的方法CI_Form_validation :: set_fields()**

我知道此错误是因为验证库已弃用并由Form_Validation

替换

但是在没有改变太多代码的情况下,当前库中是否有任何替换?

2 个答案:

答案 0 :(得分:2)

  

当前库中是否有替换而没有更改大部分代码?

没有快速/简单的方法将此代码(您的表单字段配置)迁移到较新版本,必须手动完成。如果您的旧配置如下:

$fields['password'] = "Password";

您需要将其更改为:

$fields[] = array(
    'field' => 'password',
    'label' => 'Password'
);

并使用set_rules()

$this->form_validation->set_rules($fields);

这是对你的Codeigniter安装的一次重大升级(发布日期:2007年7月12日... v1.5现在已经很老了)所以摆弄试图半升级你的代码是没有意义的,只是咬了一下子弹并确保测试。

答案 1 :(得分:-1)

毫无意义的家伙,我能想到的最好的。

$this->form_validation // automatically assign's {key}{value} pairs via $_POST