CodeIgniter的自定义库中的CI实例

时间:2012-06-19 18:33:14

标签: php codeigniter

我正在尝试在CodeIgniter中创建自定义用户库。在这个库中,我想使用其他CodeIgniter库和帮助程序,但我遇到了错误。以下是我采取的步骤:

  1. 我在User.php文件中创建了User类,并将其上传到applications / libraries /。

  2. 在application / config / autoload.php中我正在自动加载用户库。

  3. 以下是我的用户库中的代码:

    <?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 */
    

    然后在我的一个视图中,我用来调用create_login_form方法:

    $this->user->create_login_form()
    

    似乎正在调用该方法,因为hello正在被回显但是当它使用表单助手form_open方法时,我收到以下错误:

      

    遇到PHP错误严重性:通知消息:未定义   property:Home :: $ form文件名:libraries / User.php行号:46

         

    致命错误:在非对象中调用成员函数form_open()   第46行的/ application / libraries / User.php

    任何想法我做错了什么?

    谢谢!

3 个答案:

答案 0 :(得分:2)

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.
    }

}

答案 1 :(得分:1)

助手提供功能而不是某些对象的方法。在加载Form帮助程序后,您可以直接使用form_open()

答案 2 :(得分: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.
    }

}