Вызов функции-члена run() для воспламенителя необъектного кода
Я пытаюсь создать форму регистрации пользователя, используя воспламенитель кода 2.1.0. Я использовал следующий код в regitration.php в контроллерах для добавления пользователей.
class Registration extends CI_Controller
{
function __construct() {
parent::__construct();
}
function index()
{
$data['main_content'] = 'registration';
// Checks to see if form validation rules were met an executed properly. If not, will return with registration form.
if ($this->form_validation->run('registration') === FALSE)
{
$data ['title'] = 'Registration';
$this->load->view('include/template', $data);
}
// If validation passes, information will be passed along to the MODEL to be processed and the account will be created.
else
{
$this->load->model('registration_model');
$this->registration_model->addUser();
$this->session->set_flashdata('success', 'Your account has been successfully created');
redirect(uri_string());
}
}
}
Но это показало мне ошибку Call to a member function run() on a non-object
, Как мне это исправить?
1 ответ
Решение
Пожалуйста, укажите
// load 'form' helper
$this->load->helper('form');
// load 'validation' class
$this->load->library('form_validation');
и попробуй сейчас
function __construct() {
// load controller parent
parent::__construct();
// load 'url' helper
$this->load->helper('url');
// load 'form' helper
$this->load->helper('form');
// load 'session'
$this->load->library('session');
// load 'validation' class
$this->load->library('form_validation');
}
Кажется, класс $ session не инициализируется правильно.
- Проверьте таблицу default_ci_sessions, если вы используете сеансы для базы данных.
- Проверьте, загружает ли конструктор библиотеку сессий.
- Проверьте, находится ли сессия в конфигурации autoload.php
За это "In order to use the Session class you are required to set an encryption key in your config file."
, добавьте это в ваш config.php
$config['encryption_key'] = 'your_encryption_key_here';