我正在尝试在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 */
然后在我的一个视图中,我用来调用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
任何想法我做错了什么?
谢谢!
答案 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.
}
}