0

I'm trying to get first name and last name of registered users. This is my getfirstname , getlastname function in the model

public function getf()
{  

  $email = $this->input->post('email');
  $this->db->where('email', $this->input->post('email'));
  $query = $this->db->get('users');
        if($query->num_rows == 1)
        {
          $row = $query->row();
          echo $row->fname;
        }

}


public function getl()
{
    $this->db->where('email', $this->input->post('email'));
    $query = $this->db->get('users');
    if($query->num_rows == 1)
    {
        $row = $query->row();
        echo $row->lname;
    }

}

In My Contoller:

public function members()
{
    if($this->session->userdata('is_logged_in'))
    {

        $data['fname'] = $this->getf(); 
        $data['lname'] = $this->getl();
        $this->load->view('members', $data);
    }
    else
    {
        redirect('main/restricted');
    }
}

Im echoing the fname and lname variables in my view which prints 'Array' and not actual firstname and lastname

echo $fname;
echo $lname;
4

3 回答 3

4

您对模型的调用是完全错误的,并且您没有遵循标准程序。像这样试试。分离逻辑

控制器

public function members()
{
    if($this->session->userdata('is_logged_in'))
    {

        $email  =   $this->input->post('email');
        $result =   $this->mymodel->getnames($email); 
        if($result){
            $data['fname'] = $result->first_name;
            $data['lname'] = $result->last_name;
            $this->load->view('members', $data);
        }
    }
    else
    {
        redirect('main/restricted');
    }
}

并为模型创建单个函数,而不是为可以使用单个函数检索的两个值创建两个函数还返回对象而不是回显

public function getnames($email)
{  
    $this->db->where('email',$email);
    $query = $this->db->get('users');
    if($query->num_rows == 1)
    {
        return $query->row();
    }
    return false;
}
于 2013-05-11T18:36:02.630 回答
0

用户模型

class UserModel extends CI_Model
{
    public function getItemByEmail($email)
    {  
        // check email
        $this->load->helper('email');

        if( ! $email OR ! valid_email($email))
            return array();

        $this->db->where('email', $email);
        $this->db->limit(1);
        $item = $this->db->get('users')->row();

        return $item;
    }
}

控制器:

public function members()
{
    if( ! $this->session->userdata('is_logged_in'))
        redirect('main/restricted');

    $this->load->model('UserModel');

    $this->load->view('members', array(
        'userRow' => $this->UserModel->getItemByEmail($this->input->post('email', TRUE))
    ));
}

看法:

<?= (isset($userRow->fname) ? $userRow->fname : ''); ?>
于 2013-05-12T00:46:49.117 回答
0

从我所见,您实际上并未声明“fname”和“lname”变量,除非我错过了它,但如果它一直返回“Array”,那是因为您需要使用

$variable = json_encode($arrayName);

这会将数组转换为字符串,希望对您有所帮助。

于 2013-05-11T17:55:04.073 回答