首先,您提供的 URL 不起作用,您没有遵循 CI 的常规约定,因此它不知道在哪里查找。我假设您的控制器被称为示例然后您需要告诉应用程序您在该控制器中调用哪个函数,最后 URL 名称应该是小写所以我改变了它,所以你的 URL 应该是:
“http://localhost/SMS_System/home/sample/get_pitch/102”
您还需要从模型中获取数据,您加载了模型然后没有使用它。加载模型后的行从该模型调用一个函数,并将您从 url 获得的 id 传递给它。请注意 id 上的 if not isset,这可以确保如果有人在没有 id 段的情况下进入该页面,则不会从缺少参数的模型中抛出任何错误,它只会返回任何内容,这在视图中进行处理。
控制器:
function get_pitch($id){
//the following line gets the id based on the segment it's in in the URL
$id=$this->uri_segment(3);
if(!isset($id))
{
$id = 0;
}
$this->load->model('users_model');
$data['query'] = $this->users_model->getUserData($id);
$this->load->view('view_pitch', $data);
}
您的模型采用从控制器传递的 id 并使用它从数据库中检索数据。我通常创建我将作为空数组返回的数组并在视图中处理它,这样可以确保在查询失败时不会出错。然后数据在最后一行返回到控制器,并在您的加载视图调用中传递给视图。
模型:
function getUserData($id)
{
$this->db->where('id',$id);
$result = $this->db->get('users') //assuming the table is named users
$data = array(); //create empty array so we aren't returning nothing if the query fails
if ($result->num_rows()==1) //only return data if we get only one result
{
$data = $result->result_array();
}
return $data;
}
然后,您的视图将通过控制器从模型接收到数据并显示它(如果存在),如果数据不存在,则显示错误,说明用户不存在。看法:
if(isset($query['id']))
{
echo $query['id']; //the variable is the array we created inside the $data variable in the controller.
echo $query['name'];
echo $query['user_id'];
} else {
echo 'That user does not exist';
}