2009-08-12 6 views
0

J'implémente le module auth dans Kohana, et je n'arrive pas à comprendre la source de ce message d'erreur - cela se produit lorsque je soumets un formulaire d'enregistrement qui crée un utilisateur dans la base de données (ce qu'il fait avec succès).Kohana - Erreur d'exécution de l'enregistrement de l'utilisateur (auth)

Une erreur a été détectée qui a empêché le chargement de cette page. Si ce problème persiste, veuillez contacter l'administrateur du site.

application/contrôleurs/register.php [83]:

Undefined property: Register_Controller :: $ auth

J'utilise jquery pour valider le formulaire et la forme a parfaitement fonctionné avant a ajouté le jquery, de sorte que le problème pourrait avoir à faire avec les demandes ajax, mais je ne suis pas sûr où aller à partir de là ...

est ici la trace de la pile:

* 

    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) 

Et voici la méthode create_user() dans le 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'); 
     } 
    } 
} 

Quelqu'un a des suggestions? : P

Répondre

1

L'erreur que vous obtenez est parce que la variable $ this-> auth n'existe pas dans votre contrôleur

Je devine que vous vouliez faire $this->auth = Auth::instance(); dans le constructeur.

+0

merci beaucoup - pour une raison quelconque, je pensais que j'avais déjà inclus – mportiz08

Questions connexes