我對codeigniter很陌生,我正在構建一些示例工具來了解我的解決方法。我已經在網上關注了一些基本的教程,現在我要走自己的路了。在codeigniter中訪問來自控制器的發佈變量
我有下面的代碼,我試圖解決,如果用戶存在之前註冊他們。我也無法知道如何告訴我的觀點,即如果用戶已經存在錯誤,我會在哪裏傳回數據?
我得到的錯誤是:
致命錯誤:使用$這在不在線的/Users/Tom/www/crm/application/helpers/site_helper.php對象上下文18
控制器/ users.php
public function register()
{
$this->load->helper('form');
$this->load->library('form_validation');
$data['title'] = 'Create a new user';
$this->form_validation->set_rules('firstname', 'First Name', 'required');
$this->form_validation->set_rules('surname', 'Surname', 'required');
if ($this->form_validation->run() === FALSE)
{
$this->load->view('templates/header', $data);
$this->load->view('users/register');
$this->load->view('templates/footer');
}
else
{
if(c_userexists($this->input->post('email'))){
$this->load->view('templates/header', $data);
$this->load->view('users/register');
$this->load->view('templates/footer');
} else {
$this->users_model->set_register();
$this->load->view('users/success');
}
}
}
助手/ site_helper.php
if(!function_exists('c_userexists'))
{
function c_userexists($value)
{
$this->db->select('count(*) as user_count');
$this->db->from('users');
$this->db->where('email', $userId);
$query = $this->db->get();
if($query > 0){
return true;
} else {
return false;
}
}
}
模型/ Users_model.php
public function set_register()
{
$this->load->helper('url');
$data = array(
'firstname' => $this->input->post('firstname'),
'surname' => $this->input->post('surname'),
'email' => $this->input->post('email'),
'password' => c_passencode($this->input->post('email'))
);
return $this->db->insert('users', $data);
}
看看這篇文章幫助:http://stackoverflow.com/questions/ 6234159/codeigniter-cant-access-this-within-function-in-view這是一個視圖,而不是幫助器,但同樣的問題。 – 2015-04-05 18:38:10