PHP Codeigniter,分配属性值并访问它
我试图从一个函数中为属性赋值,并在另一个函数中访问它。我认为这应该是这么简单。不幸的是,我似乎不能处理这个简单的任务 这是我的控制器:PHP Codeigniter,分配属性值并访问它,php,codeigniter,properties,Php,Codeigniter,Properties,我试图从一个函数中为属性赋值,并在另一个函数中访问它。我认为这应该是这么简单。不幸的是,我似乎不能处理这个简单的任务 这是我的控制器: <?php class Form_Controller extends CI_Controller { public $current_user; public $pi = 3.14; function index() { $this->form_validation->set_rules('emai
<?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\u verification()
时,$current\u user
被分配一个值,我可以打印它。之后我调用name\u verification()
,但是$current\u user
没有值。
如果您知道这里发生了什么,请在查看代码后首先解释。 1) 如果您是从url调用名称变量,那么您没有为全局变量分配任何值
$this->current_user.
2) 如果您是从url调用account_Variation,则必须将数据分配给golbal变量
$this->current_user
您并不是从帐户变量中调用名称变量,所以这意味着您是从url调用它,所以它当然会失去它的值,所以正确的代码是要么调用名字变量,然后为它分配以下数据
$this->load->model('User_Id_Model');
$data['user_data'] = $this->User_Id_Model->get_user_credentials();
$this->current_user = $data['user_data'];
在调用$this->account\u验证之后,就像您正在调用的一样,这两个函数都将有值
我希望你能理解。
当做
伊姆兰·卡西姆我不知道你的意思。请详细说明。为了澄清-我有一个关于表格的观点。表单调用account_verification()account_verification()添加另一个视图,加载另一个表单。提交第二个表单时,它调用name_verification()。在account_verification()中,我获得了一些用户凭据:$data['user_data']=$this->user_Id\u Model->get_user_credentials();我想做的是将凭证传递给第二个方法,这样我就可以用从第二个表单接收到的值更新数据库中的用户。如果有两个表单,则表示您通过url调用这两个函数,因此当您调用name_variation函数时,全局变量current_user不会保留其值。这就是我的意思,如果你想保留这些值,那么你需要在提交第一个表单后使用session来重新创建这些值,并且当你调用第二个方法名时从session中获取这些值,这将解决你的问题。实际上你是对的。将其添加到会话中可以将其传递给下一个函数。。。我现在要做的就是弄清楚从现在开始该做什么:xh我如何选择您的帖子作为答案?只需单击0上方的向上箭头键