Kohana - Enregistrement utilisateur Erreur d'exécution (auth)
-
13-09-2019 - |
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
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.