Kohana — ошибка выполнения регистрации пользователя (auth)

StackOverflow https://stackoverflow.com/questions/1268339

Вопрос

Я реализую модуль аутентификации в Kohana и не могу понять источник этого сообщения об ошибке — это происходит, когда я отправляю регистрационную форму, которая создает пользователя в базе данных (что он успешно и делает).

Обнаружена ошибка, которая препятствовала загрузке этой страницы.Если проблема сохранится, обратитесь к администратору сайта.

приложение/контроллеры/register.php [83]:

Неопределенное свойство:Регистр_контроллер::$auth

Я использую jquery для проверки формы, и до того, как я добавил jquery, форма работала отлично, поэтому проблема может быть связана с запросами ajax, но я не уверен, что делать дальше...

Вот трассировка стека:

   *

     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 )

А вот метод create_user() в 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');
      }
   }
}

У кого-нибудь есть предложения?:П

Это было полезно?

Решение

Ошибка, которую вы получаете, связана с тем, что переменная $this->auth не существует в вашем контроллере.

Я предполагаю, что ты хотел сделать $this->auth = Auth::instance(); в конструкторе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top