我正在使用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'];?>"/>
我正在看白屏。为什么会发生这种情况?有人可以帮我处理代码吗?
答案 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