我是codeigniter的初学者,并且一直在努力创建一个我编写的自定义库来加载。我已设置CI以通过名为“check_login”的控制器启动网站。 该文件的内容如下:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Check_login extends CI_Controller {
public function __construct (){
parent::__construct();
$this->load->library('check_login');
}
function index (){
$this->check_login->checker();
}
}
库'check_login'已放入CI/application/libraries/
并包含以下脚本:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Check_Login {
public function cheker (){
//$CI =& get_instance();
$is_logged_in = $this->session->userdata('is_logged_in');
if(!isset($is_logged_in) || $is_logged_in != true){
$this->load->view('welcome_message');
}
}
}
我还尝试使用$CI =& get_instance();
代替$this
,并尝试将库的名称添加到autoload config
文件中以查看它是否有效。浏览器显示的结果如下:
The Output in image
我想知道是什么原因导致我的库无法加载,何时我应该使用get_instance();
而不是$ this。非常感谢你提前。
答案 0 :(得分:0)
似乎我对PHP知之甚少。我一直在调用库而不在变量中赋值。因此,在控制器的索引功能中,我应该将命令更改为:
$q = $this->check_login->checker();echo $q;
答案 1 :(得分:0)
只需将您的班级名称更改为Check_login
或其他小写的名称。您正在调用$this->check_login->checker();
,而在您的库中,您的函数名称为cheker()
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Check_login {
public function __construct()
{
$CI =& get_instance();
}
public function cheker ()
{
$is_logged_in = $this->session->userdata('is_logged_in');
if(!isset($is_logged_in) || $is_logged_in != true){
$this->load->view('welcome_message');
}
}
为什么 $ CI =&amp; get_instance(); 强> 通过引用分配允许您使用原始CodeIgniter对象而不是创建它的副本。