处理CodeIgniter中的url请求

时间:2013-08-09 04:08:13

标签: php codeigniter

我刚刚开始学习codeigniter,我必须说它非常容易,但我在处理错误的网址时遇到问题,例如:

如果我有这样的锚标签     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。

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

2 个答案:

答案 0 :(得分: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);
}

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

答案 1 :(得分: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
}

其中data_exists()可以是模型中的函数,该函数返回TRUEFALSE,具体取决于数据库中id的存在。