Я пытаюсь присвоить значение свойству из одной функции и получить к нему доступ в другой функции. Я думал, что это должно быть так просто. К сожалению, я не могу справиться с этой простой задачей.
Вот мой контроллер:
<?php
class Form_Controller extends CI_Controller {
public $current_user;
public $pi = 3.14;
function index() {
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
$this->form_validation->set_rules('username', 'Username');
$this->form_validation->set_rules('password', 'Password');
if ($this->form_validation->run() == FALSE) {
$this->load->view('login_form');
} else {
$this->load->model('Admin_Users_Model');
$is_logged_in = $this->Admin_Users_Model->login();
if ($is_logged_in) {
$this->load->view('admin_panel/panel');
$this->load->view('admin_panel/account_verification_status_form');
} else {
$this->load->view('login_form');
}
}
}
function account_verification() {
$this->load->model('User_Id_Model');
$data['user_data'] = $this->User_Id_Model->get_user_credentials();
$this->current_user = $data['user_data'];
foreach ($this->current_user as $value) {
echo $value;
}
$this->load->view('admin_panel/panel');
$this->load->view('admin_panel/account_verification_status_form');
$this->load->view('admin_panel/account_verification_name_form', $data);
$this->load->view('admin_panel/account_verification_status', $data);
}
function name_verification() {
$selected_value = $this->input->post('verify-name');
echo count($this->current_user) . '<br />';
echo $this->current_user;
echo $this->pi;
$this->account_verification();
}
private function _write_to_database($user_data) {
$this->load->model('User_Id_Model');
$this->User_Id_Model->write_to_database($user_data);
}
}
?>
Когда я звоню account_verification()
, $current_user
присвоено значение, и я могу его распечатать. После этого я звоню name_verification()
, но $current_user
не имеет значения.
Если вы знаете, что здесь происходит, пожалуйста, объясните.
прежде всего после просмотра вашего кода
1) если вы вызываете name_varification из url, вы не присваиваете значение глобальной переменной, т.е.
$this->current_user.
2) если вы вызываете account_varification из url, тогда вы присваиваете данные переменной golbal
$this->current_user
и вы не вызываете name_varification из account_varification, поэтому снова это означает, что вы вызываете его из url, поэтому, конечно, он потеряет свое значение, поэтому правильный код либо вызовет first name_varificaton, либо назначит ему следующие данные.
$this->load->model('User_Id_Model');
$data['user_data'] = $this->User_Id_Model->get_user_credentials();
$this->current_user = $data['user_data'];
после этого вызовите $ this-> account_verification, как только вы звоните, тогда обе функции будут иметь значения
Я надеюсь, ты понимаешь.
С уважением
Имран Касим
Других решений пока нет …