Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter自定义库中的CI实例_Php_Codeigniter - Fatal编程技术网

Php CodeIgniter自定义库中的CI实例

Php CodeIgniter自定义库中的CI实例,php,codeigniter,Php,Codeigniter,我正在尝试在CodeIgniter中创建一个自定义用户库。在这个库中,我想使用其他CodeIgniter库和帮助程序,但我遇到了错误。以下是我采取的步骤: 我在User.php文件中创建了User类,并将其上载到applications/libraries/ 在application/config/autoload.php内部,我正在自动加载用户库 以下是我的用户库中的代码: <?php class User { private $CI; publi

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

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

  • 在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 */
    
    似乎调用该方法是因为回显hello,但当使用form helper
    form_open
    方法时,出现以下错误:

    遇到PHP错误严重性:注意消息:未定义 属性:Home::$formfilename:libraries/User.php行号:46

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

    你知道我做错了什么吗


    谢谢

    帮助程序提供某些对象的函数而不是方法。加载表单帮助程序后,可以直接使用
    form\u open()

    帮助程序提供某些对象的函数而不是方法。加载表单帮助程序后,可以直接使用
    form\u open()

    类用户{
    
    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.
        }
    
    }
    
    私人$CI; 公共函数构造() { $this->CI=&get_instance(); $this->CI->load->helper('form'); } 公共函数创建\登录\表单() { 呼应“标题”; echo form_open();//form open是助手,而不是库 echo‘写点什么’; echo form_close();//生成结束标记。 } }
    类用户{
    私人$CI;
    公共函数构造()
    {
    $this->CI=&get_instance();
    $this->CI->load->helper('form');
    }
    公共函数创建\登录\表单()
    {
    呼应“标题”;
    echo form_open();//form open是助手,而不是库
    echo‘写点什么’;
    echo form_close();//生成结束标记。
    }
    }
    
    类用户{
    公共函数构造()
    {
    $CI=&get_instance();
    $CI->load->helper('form');
    }
    公共函数创建\登录\表单()
    {
    呼应“标题”;
    echo form_open();//form open是助手,而不是库
    echo‘写点什么’;
    echo form_close();//生成结束标记。
    }
    }
    
    类用户{
    公共函数构造()
    {
    $CI=&get_instance();
    $CI->load->helper('form');
    }
    公共函数创建\登录\表单()
    {
    呼应“标题”;
    echo form_open();//form open是助手,而不是库
    echo‘写点什么’;
    echo form_close();//生成结束标记。
    }
    }
    
    duh谢谢Narf!刚开始使用CodeIgniter,我想我仍然需要把我的头围绕在所有事情上。接下来的问题是:如果我想使用库方法,那么我必须使用$this->CI->library->method()正确吗?是的。另外,如果您只需要form helper,并且您的用户库设置为自动加载,那么您也应该自动加载form helper,这样您就不需要使用
    get\u instance()
    。太棒了,谢谢您的建议!最后一件事:我知道自动加载帮助程序会让我放弃像get_instance()和传递对CI对象的引用这样的事情,因为帮助程序是由现在所有代码都可用的函数组成的。但是假设我知道我也将使用会话库。即使我自动加载会话库,在我的自定义库中,我仍然需要获得对CI对象的引用才能访问会话的方法,对吗?是的,这几乎是从库中访问其他库的唯一方法。谢谢,非常感谢所有帮助!谢谢你,纳夫!刚开始使用CodeIgniter,我想我仍然需要把我的头围绕在所有事情上。接下来的问题是:如果我想使用库方法,那么我必须使用$this->CI->library->method()正确吗?是的。另外,如果您只需要form helper,并且您的用户库设置为自动加载,那么您也应该自动加载form helper,这样您就不需要使用
    get\u instance()
    。太棒了,谢谢您的建议!最后一件事:我知道自动加载帮助程序会让我放弃像get_instance()和传递对CI对象的引用这样的事情,因为帮助程序是由现在所有代码都可用的函数组成的。但是假设我知道我也将使用会话库。即使我自动加载会话库,在我的自定义库中,我仍然需要获得对CI对象的引用才能访问会话的方法,对吗?是的,这几乎是从库中访问其他库的唯一方法。谢谢,非常感谢所有帮助!
    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.
        }
    
    }
    
    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.
        }
    
    }