将用户名从模型传递给控制器

时间:2018-03-30 20:53:22

标签: php codeigniter

我的控制器

public function aksi_login(){
    $email = $this->input->post('email');
    $password = $this->input->post('password');
    $username = $this->action->getNamaLogin();    

    $cek = $this->action->cek_login("anggota",$where)->num_rows();

    if($cek > 0){
        $data_session = array(
        'nama' => $username,
    );
    $this->session->set_userdata($data_session);
}

我的模特

   function getNamaLogin($email)
   {
      $query = $this->db->query("SELECT Nama FROM anggota WHERE Email = '$email'");
   }

我的观点

<h2>Welcome <?php echo $this->session->userdata("nama"); ?></h2>

我想在用户登录会话时传递用户名并在视图中显示用户名。但是当我var_dump($ username)时,该值为NULL并且用户名未显示在视图中。我犯了错误,还是有其他好方法可以做我想做的事情?

2 个答案:

答案 0 :(得分:0)

首先确保您的$ username不为空。然后通过在控制器方法中加载视图将数据从控制器传递到视图。

在模型功能中:

$query = $this->db->query("SELECT Nama FROM anggota WHERE Email = '$email'");
return $query->result();

在控制器功能中:

$username = $this->action->getNamaLogin($email);   
$data['username'] = $username;
$this->load->view('view_page', $data);

在View_page。

<?php echo $username;?>

查找更多https://codeigniter.com/user_guide/general/views.html

答案 1 :(得分:0)

getNamaLogin()执行:

return $query->row()->nama

我还建议如果用户不存在则添加else条件,或者密码是inccorect,将用户重定向回逻辑页面并显示错误消息。目前没有这方面的逻辑,用户将只面对一个空白页面,除非有我遗漏的东西。