我得到消息错误:试图获取非对象的属性,但我不知道解决了这个问题。请帮助
控制器
public function login_user(){
$user =array( 'email_user'=> $this->input->post('email_user'),
'password_user'=> $this->input->post('password_user'));
$myquery= $this->user_model->login_check($user['email_user'],
$user['password_user']);
if ($myquery== TRUE) {
foreach($myquery as $d){
$session_array = array(
'id_user'=>$d->id_user,
'username_user'=>$d->username_user,
'email_user'=>$d->email_user,
'phone_user'=>$d->phone_user,
'tanggal_lahir'=>$d->tanggal_lahir
);
$this->session->set_userdata('loggedIn',$session_array);}
$this->load->view('v_formluar.php');
}
else{
$this->session->set_flashdata('error_msg', 'Error occured,Try again.');
$this->load->view('v_login.php');
}
}
我不知道从模型到控制器的数据,
我的型号
public function login_check($email, $password){
$this->db->select('registrasi.user_id,
registrasi.username_user,
registrasi.email_user,
registrasi.password_user')
->from('registrasi')
->where("registrasi.email_user = '$email' OR registrasi.username_user = '$email' ");
$query = $this->db->get();
if($query->num_rows() == 1){
return $query->row();
} else {
return false;
}
}
您对$myquery
的使用是不正确的,因为您的模型返回数据或false。更改控制器代码如下:
public function login_user(){
$user =array( 'email_user'=> $this->input->post('email_user'),
'password_user'=> $this->input->post('password_user'));
$myquery= $this->user_model->login_check($user['email_user'],
$user['password_user']);
if ($myquery!=FALSE) {
foreach($myquery as $d){
$session_array = array(
'id_user'=>$d->id_user,
'username_user'=>$d->username_user,
'email_user'=>$d->email_user,
'phone_user'=>$d->phone_user,
'tanggal_lahir'=>$d->tanggal_lahir
);
$this->session->set_userdata('loggedIn',$session_array);}
$this->load->view('v_formluar.php');
}
else{
$this->session->set_flashdata('error_msg', 'Error occured,Try again.');
$this->load->view('v_login.php');
}
}
首先在控制器中加载模型:
$this->load->model('your_model_name_m');
然后你可以在你的控制器中使用模型:
$logged_in = $this->your_model_name_m->login_check('me@us.com', 'password!#$');
如果你经常使用这个模型,你也可以通过模型部分的配置文件自动加载:
$autoload['model'] = array( "your_model_name" );
您的型号
使用括号与您的数据库条件
public function login_check($email, $password){
$this->db->select('registrasi.user_id,
registrasi.username_user,
registrasi.email_user,
registrasi.password_user')
->from('registrasi')
->where("(registrasi.email_user = '$email' OR registrasi.username_user = '$email' )");
$query = $this->db->get();
if($query->num_rows() == 1){
return $query->row();
} else {
return false;
}
}
您的控制器
if(isset($myquery) && $myquery != ''){
//foreach loop
}else{
//No record found
}
您也可以将where()
和or_where()
用于您的条件
阅读更多
尝试替换
if($myquery==TRUE){
// your code
}
带有
if($myquery){
// your code
}