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