0

使用 Codeigniter + Bonfire 框架,我可以在我的 URL 中传递变量。这一切都适用于 GET 函数,如下所示:

在我的视图文件中,我获得了用户的 ID,然后单击将其再次传递给控制器​​:

<a href="/my_team/index/<?php echo $user->member->id; ?>">Something</a>

控制器然后接收 ID:

public function index($id = null) {

    //do stuff with that id...
}

网址如下所示:

http://mysite/my_team/index/26

该页面上的所有内容都知道用户的 ID 为 26 并正确显示信息。

问题是如果我手动从 URL 中删除该数字,它看起来像这样:

http://mysite/my_team/index/

并将索引留在 URL 中我现在收到一大堆错误,因为该站点无法从 URL 获取 ID。我怎样才能避免这种情况?也许使用 .htacces 或其他东西从 URL 中隐藏index公共功能?

4

3 回答 3

1

就像@CBroe 在他的评论中所说的那样。像这样的东西:

public function index($id = null) {

   if(is_null($id)) {
      // redirect to custom error page
   }

    //do stuff with that id...
}
于 2014-08-16T14:24:51.413 回答
0

将您的 CI url 路由器设置为重定向

http://mysite/my_team/index/

到默认网址,例如

http://mysite/my_team/index/1

于 2014-08-16T14:56:48.937 回答
0

参数可以是字符串值,所以我更喜欢这种方式

public function index($id = '') {

   if($id!='') {
      // Proceed further
   }
else{
    //Redirect to a error page(that is 301 safe)
   }
}
于 2014-08-16T17:13:46.330 回答