Php CodeIgniter中url请求的处理

Php CodeIgniter中url请求的处理,php,codeigniter,Php,Codeigniter,我刚开始学习codeigniter,我必须说这很容易,但我在处理错误的URL时遇到了一个问题,例如: 如果我有这样一个锚标签 在控制器中,如果我有 public function info( $x ) { $data['body'] = "Personal_info"; $data['details'] = $this->person_model->get_detail( $x ); $this->load->view('view', $data); }

我刚开始学习codeigniter,我必须说这很容易,但我在处理错误的URL时遇到了一个问题,例如:

如果我有这样一个锚标签 在控制器中,如果我有

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


我如何处理这样的问题?我是初学者,请原谅,在尝试获取相关数据之前,您可以检查数据库中是否存在传递的
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\u exists()
可以是模型中的一个函数,根据数据库中
id
的存在返回
TRUE
FALSE

在尝试获取相关数据之前,可以检查传递的
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\u exists()
可以是模型中的一个函数,根据数据库中
id
的存在返回
TRUE
FALSE

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

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

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

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

我有一个404库页面。若数据库并没有结果,我只需加载404页面并退出。当没有找到记录时,由您决定要向用户显示什么。我有一个404库页面。若数据库并没有结果,我只需加载404页面并退出。当找不到记录时,由您决定要向用户显示什么。