На мой взгляд, то, что я хочу сделать, – это очистить поля формы, как только пользователь будет успешно зарегистрирован. Здесь все отлично работает, т.е. пользователь регистрируется, сообщение об успешности отображается пользователю, за исключением того, что я хочу сделать, – это очистить значения полей формы, для которых я использую это
// Clear the form validation field data, so that it doesn't show up in the forms $this->form_validation->_field_data = array();
После того, как я добавил это, CI продолжает давать мне эту ошибку: Неустранимая ошибка: не удается получить доступ к защищенному свойству CI_Form_validation :: $ _ field_data в
C: \ wamp \ www \ CodeIgniter \ application \ controllers \ user.php в строке 92
Вот соответствующий код контроллера:
public function signup() { // If the user is logged in, don't allow him to view this page. if (($this->_isLoggedIn()) === true) { $this->dashboard(); } else { $data['page'] = 'signup'; $data['heading'] = 'Register yourself'; $data['message'] = $this->_regmsg; $this->load->library('form_validation'); // $this->form_validation->set_rules('is_unique', 'Sorry! This %s has already been taken. Please chose a different one.'); $this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]|is_unique[users.username]|callback_valid_username'); $this->form_validation->set_rules('password', 'Password', 'required|matches[passconf]'); $this->form_validation->set_rules('passconf', 'Password Confirmation', 'required'); $this->form_validation->set_rules('email', 'Email', 'required|valid_email|is_unique[users.email]'); // run will return true if and only if we have applied some rule all the rules and all of them are satisfied if ($this->form_validation->run() == false) { $data['errors'] = isset($_POST['submit']) ? true : false; $data['success'] = false; $this->_load_signup_page($data); } else{ if($this->users->register_user($_POST)){ $data['errors'] = false; $data['success'] = true; // Clear the form validation field data, so that it doesn't show up in the forms $this->form_validation->_field_data = array(); $this->_load_signup_page($data); } } } } private _load_signup_page($data){ $this->load->view('template/main_template_head'); $this->load->view('template/blue_unit', $data); $this->load->view('signup', $data); $this->load->view('template/main_template_foot'); }
Может кто-нибудь, пожалуйста, скажите мне, в чем дело с этой линией?
$this->form_validation->_field_data = array();
PS: Вот как я показываю значения в форме:
<?php echo set_value('fieldname'); ?>