Kohana - 用户注册运行时错误(auth)

时间:2009-08-12 19:51:27

标签: php jquery ajax authentication kohana

我正在Kohana中实现auth模块,我似乎无法找出此错误消息的来源 - 当我提交在数据库中创建用户的注册表单时(它成功执行此操作)就会发生这种情况)。

  

检测到错误,导致无法加载此页面。如果此问题仍然存在,请与网站管理员联系。

     

application / controllers / register.php [83]:

     

未定义属性:Register_Controller :: $ auth

我正在使用jquery来验证表单,并且在添加jquery之前表单工作得很好,所以问题可能与ajax请求有关,但我不知道从那里去哪里...

这是堆栈跟踪:

   *

     Register_Controller->create_user(  )

   * system/core/Kohana.php [291]:

     ReflectionMethod->invokeArgs( Register_Controller Object
     (
         [template] => View Object
             (
                 [kohana_filename:protected] => /var/www/ko/testsite/system/views/form/template.php
                 [kohana_filetype:protected] => .php
                 [kohana_local_data:protected] => Array
                     (
                     )

             )

         [auto_render] => 1
         [uri] => URI Object
             (
             )

         [input] => Input Object
             (
                 [use_xss_clean:protected] => 1
                 [magic_quotes_gpc:protected] => 1
                 [ip_address] => 
             )

     )
      )

   *

     Kohana::instance(  )

   * system/core/Event.php [209]:

     call_user_func( Array
     (
         [0] => Kohana
         [1] => instance
     )
      )

   * system/core/Bootstrap.php [55]:

     Event::run( system.execute )

   * index.php [106]:

     require( system/core/Bootstrap.php )

这是Register_Controller中的create_user()方法:

public function create_user()
{
   if($_POST)
   {
      $post = $this->input->post();
      $user = ORM::factory('user');

      $user->add(ORM::factory('role', 'login'));

     if($user->validate($post, TRUE))
      {
         $this->auth->login($user, $post->password);
         url::redirect();
      }
      else
      {
         url::redirect('register');
      }
   }
}

有人有什么建议吗? :P

1 个答案:

答案 0 :(得分:1)

您获得的错误是因为您的控制器中不存在变量$ this-> auth

我猜你打算在构造函数中执行 $this->auth = Auth::instance();