这是我使用Codeigniter和Ion的第一个项目,我已经完成了本教程:http://www.rappasoft.com/tutorials/view/5#.U1bJLeZdWpo
但是现在我已经接近尾声了,当我的所有代码看起来都与教程相同时,就会出现一个错误。错误是:
消息:从空值创建默认对象
文件名: core/MY_Controller.php
线路号码: 13
但奇怪的是,MY_Controller文件中的代码是从教程中复制的。下面是我的代码:
<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Controller extends CI_Controller {
public function __construct() {
parent::__construct();
if (!$this->ion_auth->is_admin()) {
redirect('auth/login');
} else {
//Store user in $data
$data->user_info = $this->ion_auth->user()->row();
//Load $the_user in all views
$this->load->vars($data);
}
}
}
?>正确的视图加载在错误下面,但显然我想知道是什么问题。因为这是我第一次使用ion-auth,而且我对代码点火器也比较陌生,所以我想知道是否有人知道如何调试这样的错误。教人钓鱼,喂他一辈子!我真的很感激不仅仅是解决方案,而是方法,这样我就可以自己学习和做这件事。
发布于 2014-04-22 20:40:58
你在做PHP 5.4+吗?
在这种情况下,必须在使用$data之前声明它:
更改:
$data->user_info = $this->ion_auth->user()->row();至
$data = new stdClass();
$data->user_info = $this->ion_auth->user()->row();再试一次。Hpe它有帮助!
发布于 2014-04-22 20:43:58
我想我可能已经搞清楚了。我认为问题可能是默认登录信息(由ion提供的登录信息)在数据库中没有任何附加信息。这意味着当$data变量设置附加帐户信息时,它不会发现任何内容。这不是一个强大的错误,使网页崩溃,但它警告我,没有其他帐户信息,即使它应该是寻找更多的信息。
那怎么解决这个问题?创建一个用于测试目的的用户,充分补充帐户信息,并查看这是否解决了问题。唯一的问题是,我不知道如何使用ion添加新用户,而且我的观点还不够复杂,不足以使这个过程变得简单。
我已经查看了create_user()方法在auth.php文件中,但是当您在填写表单后按submit时,它会将您踢回包含所有信息的同一个页面。我觉得需要在这里进行编辑,尽管我不太知道该改变什么。我一直在看这份文件,但似乎有点.稀疏。我想我是在正确的轨道上,虽然我真的很想知道是否有人有一个更好的解释或解决方案。到现在为止,我还没有真正修好它。只是推论而已。
https://stackoverflow.com/questions/23229217
复制相似问题