我无法从控制器页面中检索值

时间:2015-08-14 06:32:55

标签: php mysql codeigniter

我正在使用codeigniter框架。我有一个名为client的表。我需要从表中获取名字并将其发送到我的视图页面。我在模型文件中有一个函数来检索客户端数据。 这是我的模型功能:

public function get_cli($id)
    {
    $this->db->select('*');
        $this->db->from('client');
        $this->db->where('id', $id);
        $res = $query->result();
        $row = $res[0];
        return $row->first_name;

    }

这里我得到了我的客户名字。 这是我的控制器文件。这里我有一个函数将数据从客户端表发送到我的视图页面。

public function ticket($id)
    {
        $id=$this->uri->segment(4);
        $data['id']=$this->uri->segment(4);
        $data['client']=$this->billing_model->get_cli($id);
        $data['employee']=$this->employee_model->emp_name();
        $data['main_content'] = 'admin/billing/ticket_page';
        $this->load->view('includes/template', $data);  
     }

我的观看页面。

<label>Client Id:<?=$id?></label>
<input type="text" value="<?=$client['first_name'];?>"/>

我正在看白屏。为什么会发生这种情况?有人可以帮我处理代码吗?

4 个答案:

答案 0 :(得分:2)

将您的模型功能更改为:

public function get_cli($id)
{
    $this->db->select('*');
    $this->db->from('client');
    $this->db->where('id', $id);
    $query = $this->db->get();
    $result = $query->result_array();
    return $result[0]['first_name']; //returning only the first name key value of first row(0th row) of the result;
}

然后在视图页面上:

<input type="text" value="<?=$client;?>"/>

仅打印名字;

另一种方法:

将您的模型功能更改为:

public function get_cli($id)
{
    $this->db->select('*');
    $this->db->from('client');
    $this->db->where('id', $id);
    $query = $this->db->get();
    $result = $query->result_array();
    return $result; //returning the whole array;
}

然后在视图页面上:

<input type="text" value="<?=$client[0]['first_name'];?>"/>

这将只打印数组第0行(第一行)的第一个名称值;

答案 1 :(得分:0)

您应该将视图页面更改为此

<input type="text" value="<?=$client;?>" />

这将在您返回模型中的firstname而不是整个数组时起作用。 因此,您的$client变量将包含名字。你不需要反思它。 只需回显$client即可。

答案 2 :(得分:0)

如果您的结果只有一行,建议您使用row_object()代替result()

public function get_cli($id)
{
    $this->db->select('*');
    $this->db->from('client');
    $this->db->where('id', $id);
    $res = $query->row_object();
    //$row = $res[0];  no need to write this line
    return $res->first_name;

}

您的观点上的问题 您将在first_name

中获得$client
<input type="text" value="<?=$client?>"/>

如果你没有得到任何东西,请检查数据库中的结果可能为空。

答案 3 :(得分:0)

使用

$ row ['first_name']而不是$ row-&gt; first_name