Ion Auth / CodeIgniter致命错误

时间:2011-11-12 08:27:52

标签: php codeigniter authentication ion

尝试访问planner.php和shared.php控制器时收到此致命错误。有什么想法吗?

Fatal error: Uncaught exception 'Exception' with message 'Undefined method Ion_auth::get_user() called' in
/application/libraries/Ion_auth.php:88 Stack trace: #0 

/application/core/MY_Controller.php(50): Ion_auth->__call('get_user', Array) #1 

/application/core/MY_Controller.php(50): Ion_auth->get_user() #2 

/application/controllers/user/planner.php(9): Common_Auth_Controller->__construct() #3

/system/core/CodeIgniter.php(288): Planner->__construct() #4 /index.php(202): require_once('/Users/lrussell...') #5 {main} thrown in/application/libraries/Ion_auth.php on line 88

我正在使用Ion Auth的库扩展: http://jondavidjohn.com/blog/2011/01/scalable-login-system-for-codeigniter-ion_auth

规划师控制器: http://pastie.org/private/wc1bq6eiqb9hn8iubwdgq

共享控制器: http://pastie.org/private/uj3ta8dw3jl7kqxizs9n1a

Ion_auth Library Line 88段: http://pastie.org/private/mhgwdzjyhatwsdrux4gqpa

CRUD型号: http://pastie.org/private/m2nhfqzabdsx5eiz6xqupw

活动模型: http://pastie.org/private/b6ksjoowl7wde9errow

共享模型: http://pastie.org/private/f741jfnf8o2l5oxphnrl5w

1 个答案:

答案 0 :(得分:2)

嗯,它发生在我身上同样的事情。在该库的最新版本中,Ben Edmunds使用了php魔术方法__call(),因此您不必使用常规语法$this->ion_auth_model->method()来调用模型的方法,而是使用$this->ion_auth->method(),好像它是一个属于图书馆的方法。

但实际上,该方法属于该模型。所以,如果你去看一下这个模型,你会看到没有get_user()方法(库中也没有!),或者至少在我谈到的版本中(最新的或者一个)就在之前。我在一两周前下载了一份新的副本。 我认为他提供的文档中存在一些错误(尽管他所做的整体工作很棒,对Ben来说很赞。)

您可以尝试使用user()模型方法,该方法应该产生相同的结果(它的功能越接近)。请致电$this->ion_auth->user(),看看是否符合您的需求。

修改

澄清......而不是......

$this->end_user = $this->ion_auth->current()->row();

这样做......

$this->end_user = $this->ion_auth->user()->row();