0

我刚开始学习 codeigniter,我必须说它很简单,但是我在处理错误的 url 时遇到了问题,例如:

如果我在控制器中有一个像http://example.com/info/2这样的锚标签 ,如果我有

public function info( $x ) {
   $data['body'] = "Personal_info";
   $data['details'] = $this->person_model->get_detail( $x );
   $this->load->view('view', $data);
}

控制器抓取链接

segment (3)

然后从数据库中获取 id 的详细信息。现在例如,如果用户手动编辑浏览器上的链接并更改

segment(3)

让我们说 7 并且数据库中没有 id 为 4。

我该如何处理这样的问题?我是初学者,请见谅

4

2 回答 2

2

您可以使用empty方法来检查是否有数据,如果没有重定向页面。

public function info( $x ) 
{
    $details = $this->person_model->get_detail( $x );
    if(empty($details))
        redirect('other/url');

    $data['body'] = "Personal_info";
    $data['details'] = details;
    $this->load->view('view', $data);
}

这样它就不会抛出错误,也不会尝试显示不存在的东西。

于 2013-08-09T04:24:35.277 回答
1

id您可以在尝试获取相关数据之前检查传递的数据库中是否存在,例如:

$data_exists = $this->person_model->data_exists( $x );
if( $data_exists ) {
    $data['details'] = $this->person_model->get_detail( $x );
    $this->load->view('view', $data);
}
else {
   //load some view for showing no such id exists in db
}

wheredata_exists()可以是模型中的一个函数,它返回TRUEFALSE取决于您id在数据库中的存在。

于 2013-08-09T04:22:48.347 回答