Pregunta

Estoy implementando el módulo auth en Kohana, y me parece que no puede encontrar la fuente de este mensaje de error--ocurre cuando tengo que presentar un formulario de registro que se crea un usuario en la base de datos (que con éxito).

Se ha detectado un error que impedía la carga de esta página.Si este problema persiste, póngase en contacto con el administrador del sitio web.

application/controllers/register.php [83]:

Undefined property:Register_Controller::$auth

Estoy usando jquery para validar el formulario, y la forma funcionó a la perfección antes de añadir el jquery, por lo que el problema podría tener que ver con las peticiones ajax, pero no estoy seguro de dónde ir de allí...

Aquí está el seguimiento de la pila:

   *

     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 )

Y aquí está el create_user() método en el 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');
      }
   }
}

Alguien tiene alguna sugerencia?:P

¿Fue útil?

Solución

El error que se produce se debe a que la variable $ this> auth no existe en su controlador

supongo que pretende hacer $this->auth = Auth::instance(); en el constructor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top