0

CodeIgniterでカスタムユーザーライブラリを作成しようとしています。このライブラリ内で、他のCodeIgniterライブラリとヘルパーを使用したいのですが、エラーが発生しています。これが私が取ったステップです:

  1. User.phpファイルにUserクラスを作成し、applications /libraries/にアップロードしました。

  2. application / config / autoload.php内で、ユーザーライブラリを自動ロードしています。

これが私のユーザーライブラリのコードです:

<?php 

    class User {

    private $CI;

        public function __construct()
        {
            $this->CI =& get_instance();
            $this->CI->load->helper('form');
        }

        public function create_login_form()
        {
            echo 'hello';
            echo $this->CI->form->form_open();
        }

    }

/* End of file User.php */

次に、私のビューの1つで、create_login_formメソッドを呼び出すために使用しています。

$this->user->create_login_form()

helloがエコーされているため、メソッドが呼び出されているようですが、フォームヘルパーform_openメソッドを使用すると、次のエラーが発生します。

PHPエラーが発生しました重大度:通知メッセージ:未定義のプロパティ:Home :: $ formファイル名:libraries / User.php行番号:46

致命的なエラー:46行目の... / application / libraries / User.php内の非オブジェクトでメンバー関数form_open()を呼び出す

私が間違っていることについて何か考えはありますか?

ありがとう!

4

3 に答える 3

1

ヘルパーは、一部のオブジェクトのメソッドではなく関数を提供します。form_open()フォームヘルパーがロードされた後、直接使用できます。

于 2012-06-19T18:39:15.350 に答える
1
class User {

    private $CI;

    public function __construct()
    {
        $this->CI =& get_instance();
        $this->CI->load->helper('form');
    }

    public function create_login_form()
    {
        echo 'Title';
        echo form_open(); // Form open is helper. Not library
        echo 'Write something';
        echo form_close(); // Produces a closing </form> tag.
    }

}
于 2012-06-19T18:50:22.347 に答える
1
class User {

    public function __construct()
    {
        $CI =& get_instance();
        $CI->load->helper('form');
    }

    public function create_login_form()
    {
        echo 'Title';
        echo form_open(); // Form open is helper. Not library
        echo 'Write something';
        echo form_close(); // Produces a closing </form> tag.
    }

}
于 2014-11-12T05:38:12.540 に答える