【问题标题】:codeigniter Upgrade from 1.5.4 to new version set_fields() Errorcodeigniter 从 1.5.4 升级到新版本 set_fields() 错误
【发布时间】:2011-12-30 18:20:36
【问题描述】:
    $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() **

我知道这个错误是因为 Validation 库已被 Form_Validation 折旧和替换

但是在当前库中是否有任何替换而不更改大部分代码?

【问题讨论】:

  • 我从未使用过 1.5 分支,但将其更改为 set_rules() 格式应该不会太难。正则表达式查找和替换将使您成功...

标签: php class codeigniter object


【解决方案1】:

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

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

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

您需要将其更改为:

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

并使用set_rules():

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

这是对您的 Codeigniter 安装的重大升级(发布日期:2007 年 7 月 12 日...v1.5 到现在已经很老了)所以尝试半升级代码没有意义,只需咬紧牙关项目符号并确保进行测试。

【讨论】:

  • 感谢您的评论。所以我升级到 1.7.2,它与 PHP5 一起工作,这是我目前唯一需要完全满足的要求。
【解决方案2】:

没道理老兄,我能想到的最好的。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多