将结果数组传递给codeigniter中的控制器

时间:2016-05-29 21:40:28

标签: arrays codeigniter model controller

我正在开发一个简单的个人资料页面但是我有一点点差异将结果数组传递给控制器​​......我不确定这是怎么做的。

型号:

 class Login_model extends CI_Model{

 function get_profile()
{

    $this->db->where('email', $this->input->post('email'));
    $query = $this->db->get('user');

    if($query->num_rows == 1)
    {
        return $query->result_array();
    }

}
}

控制器:

         class Login extends CI_Controller {
         function show_profile{
        $this->load->model('login_model');
        $q['user'] = $this->login_model->get_profile();
       echo $q['user'];
       }
      }

我试图回应$ q ['user']作为测试,看它是否会起作用,但它不起作用。

2 个答案:

答案 0 :(得分:0)

在这种情况下,结果数组就是你得到的结果多于一个。因为你只回到一个结果,你可以做row_array()就像

    if($query->num_rows == 1)
{
    return $query->row_array();
}
    else
{
    return false; 
}

永远不要这样做

// example of what NOT to do 
$this->db->where('email', $this->input->post('email'));// NO NO NO

首先使用codeigniter表单验证验证电子邮件,然后将其发送为

// if no user comes back then deal with it right away 
if( ! $user = $this->login_model->get_profile($email) ) 
{
    $this->showNoUserFor($email) ; 
} 
else 

{  // carry on.... 

否则 - 首先在codeigniter手册中完成教程,它将为您节省大量时间。

答案 1 :(得分:0)

你无法回应$ q ['用户'],因为它是一个数组。使用

`print_r($q['user']); exit;

您可以通过

将其传递到您的视图页面
`$this->load->view('yourViewPage',$q);