0

これは以前に尋ねられたことを知っており、投稿されたすべての回答に目を通しましたが、役に立ちませんでした。基本的に、CI2+ プロジェクトで Codeigniter フォーム検証ライブラリを拡張しようとしていますが、エラーが発生するたびに:

Fatal error: Call to a member function get_errors_array() on a non-object

以下は私のコードです:

アプリケーション/コア/CB_Form_validation.php

class CB_Form_validation extends CI_Form_validation{
    function __construct($rules = array()) {
        parent::__construct($rules);
        log_message('debug', "CB_Form_validaiton class initialized");
    }

    public function get_errors_array() {
        return $this->_error_array;
    }
}

そして、私のajaxファイルには、コンストラクトなどがあります。

public function save(){
    if($this->form_validation->run() == FALSE){

    }
}

そのif文の中で、私は次のことを試しました:

echo $this->form_validation->get_errors_array();
echo $this->cb_form_validation->get_errors_array();
echo get_errors_array();

CB_Form_validation.phpアプリケーション/ライブラリにも配置しようとしました。同様に、私のajaxコントローラーの構成でもこれを試しました

$this->load->library('CB_Form_validation');
$this->load->library('core/CB_Form_validation');

そしてCB_、カスタムクラスプレフィックスとして設定しました

4

1 に答える 1

0

これを修正するには、次の手順を実行する必要があります。

  1. カスタム フォーム検証クラスをapplication/librariesフォルダーに移動します。
  2. カスタムクラスの構成をそのまま維持できます
  3. 必要な機能にアクセスするために使用$this->form_validation->method()します
  4. ライブラリをロードしている限り、form_validation実行する必要はありません$this->load->library('custom_class')。とにかく CI がカスタム プレフィックスを取得するためです。

これが誰かを助けることを願っています

于 2013-01-15T17:49:11.693 に答える