在CodeIgniter中处理url请求


Dealing with url request in CodeIgniter

我刚开始学习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。

我该如何处理这样的问题?我是一个初学者,所以请原谅我

您可以使用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);
}

这样,它就不会抛出错误,并可能试图显示不存在的内容。

在尝试获取相关数据之前,您可以检查传递的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
}

其中data_exists()可以是模型中的函数,根据数据库中是否存在id来返回TRUEFALSE