Question

Je suis mise en œuvre du module auth dans Kohana, et je ne peux pas sembler comprendre la source de ce message d'erreur - il se produit lorsque je soumets un formulaire d'inscription qui crée un utilisateur dans la base de données (ce qu'il fait avec succès ).

  

Une erreur a été détectée, ce qui empêche le chargement de la page. Si ce problème persiste, s'il vous plaît contacter l'administrateur du site.

     

application / régulateurs / register.php [83]:

     

Undefined property: Register_Controller :: $ auth

J'utilise jquery pour valider le formulaire et la forme a parfaitement fonctionné avant que j'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à ...

Voici 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

Était-ce utile?

La solution

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

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top