使用Ion Auth与Code Igniter 2.0和PHP 5.2时出现以下错误
ErrorException [ Notice ]: Undefined property: Practice::$ion_auth
SYSDIR/core/Model.php [ 50 ]
以下是该行的代码:
45 * @access private
46 */
47 function __get($key)
48 {
49 $CI =& get_instance();
50 return $CI->$key;
51 }
52 }
53 // END Model Class
54
55 /* End of file Model.php */
关于这个错误的一个奇怪的部分是,当我试图访问一个“受限制”的页面时,似乎没有首先进入同一域上的非限制页面。也就是说,如果我打开浏览器并输入example.com/restricted - 我收到错误。但是如果我输入example.com/login然后(即使我没有正确登录),请访问example.com/restricted,它会让我进入或正确地重定向我(取决于我是否真的登录)。
我无法弄清楚我的生活是什么引发了这个问题。以下是使用Ion Auth Library的一些控制器的构造函数示例:
class Home extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->helper('url');
$this->load->library('firephp');
//ION
$this->load->library('Ion_auth');
$this->load->library('session');
$this->load->library('form_validation');
$this->load->database();
}
和
class Practice extends CI_Controller {
var $user;
var $game;
function __construct() {
parent::__construct();
// ION Auth
$this->load->library('Ion_auth');
$this->load->library('form_validation');
$this->load->library('session');
// Defaults
$this->load->helper('url');
$this->load->library('firephp');
// Models
//$this->load->model('Ion_auth_model');
//$this->load->model('Player');
$this->load->model('Practice_Game');
// User must be logged in to use this controller
// If user is logged in then we get his info as a class variable
if ($this->ion_auth->logged_in()) {
$this->user = $this->ion_auth->get_user($this->session->userdata('user_id'));
} else {
如果您有任何建议我很乐意听到它们,我似乎无法在网上找到有关此问题的其他人。谢谢!
答案 0 :(得分:1)
我遇到了同样的问题。当记忆登录被自动登录并且离子身份验证尝试使用某些尚未加载的属性时,会出现此问题。
您可以查看此拉取请求和以下提交:
https://github.com/benedmunds/CodeIgniter-Ion-Auth/pull/46 https://github.com/benedmunds/CodeIgniter-Ion-Auth/commit/ba6d09299cd7469835ab3ad7fb1a4333de88d468