Pergunta

Estou implementando o módulo auth em Kohana, e eu não consigo descobrir a origem desta mensagem de erro - isso acontece quando eu enviar um formulário de inscrição que cria um usuário no banco de dados (o que faz com sucesso ).

Foi detectado um erro que impediu o carregamento da página. Se isso persistir problemas, entre em contato com o administrador do site.

application / controllers / register.php [83]:

propriedade indefinido: Register_Controller :: $ auth

Eu estou usando jquery para validar o formulário, eo formulário funcionou perfeitamente antes de eu adicionei o jQuery, então o problema pode ter a ver com as requisições Ajax, mas não tenho certeza para onde ir a partir daí ...

Aqui está o rastreamento de pilha:

   *

     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 )

E aqui está o método create_user () no Register_Controller:

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');
      }
   }
}

Alguém tem alguma sugestão? : P

Foi útil?

Solução

O erro que você está recebendo é porque a variável $ this-> auth não existe no seu controlador

Eu estou supondo que você pretende fazer $this->auth = Auth::instance(); no construtor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top