0

我是 CodeIgniter 的新手,并且遇到了查询问题。

我想查看我数据库中的客户,所以我根据 ID 选择一行。

这是我的模型:

public function view($id)
{
    $this->db->select('*');
    $this->db->from('company');
    $this->db->where('id', $id);
    $query = $this->db->get('company');
    return $query->result();
}

这是我的控制器:

public function view($id)
{
    $this->load->model('Company_model');
    $data = $this->Company_model->view($id);
    $this->load->view('templates/header');
    $this->load->view('company/view', $data);
    $this->load->view('templates/footer');
}

这是视图:

<?php echo $data('id'); ?>     

查看它,我得到:

消息:未定义变量:id

任何帮助将不胜感激

4

4 回答 4

1

在您的视图功能中给出喜欢

$data['data'] = $this->Company_model->view($id);

首先打印 $data 并查看如何检索 id 在您的视图中将数据显示为

<?php echo $data['id']; ?>

它应该是“[]”而不是“()”,我认为您正在获取所有记录数组,因此您需要使用循环来检索数据

于 2013-06-07T04:28:19.023 回答
0

很可能是因为您在视图中拥有什么。$data不是一个函数,但你正在这样对待它。当信息从控制器传递到视图时,它作为关联数组传递,它是方括号表示法:

$data['id'];
于 2013-06-07T04:30:58.237 回答
0

这里发生的是模型中的 view() 方法实际上是返回一个对象。

试试这个=]

模型:

public function view($id)
{
    /** $this->db->select(); for a 'SELECT *' you can omit this function call **/

    $query = $this->db->get_where('company', array('id' => $id), 1);

    return $query->row(); /* This returns the result object limited to the first row */
}

控制器:

public function view($id)
{
    $this->load->model('Company_model');

/** OK, two things are going on the next line of code, on the right side, we are selecting the 'id' parameter of the object returned by the view() method in the model
and we are applying that information to the $data[id] array, where the id hash in the array will become a public variable from the view's POV
**/
    $data[id] = $this->Company_model->view($id)->id;
    $this->load->view('templates/header');
    $this->load->view('company/view', $data);
    $this->load->view('templates/footer');
}

看法:

<!-- HTML CODE HERE -->
<?php

/* Remember the $data[id] in the controller? */
echo $id; 

?>
于 2013-06-08T04:05:27.137 回答
0

我认为当你使用

返回$查询->结果();

您实际上是在发回一个对象而不是一个数组,这是@ChritopheW 答案的补充。

于 2013-06-07T18:17:06.687 回答