好的,我需要的可能听起来很简单(或复杂?-我不知道),但它是:
在 CodeIgniter 中,给定一个控制器,例如test
,您可以执行以下操作:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class test extends CI_Controller {
public function sub($param1="", $param2="")
{
}
}
?>
这意味着您可以访问:
- mysite.com/test/sub
- mysite.com/test/sub/someparam1
- mysite.com/test/sub/someparam1/someparam2
但是,如果我想“省略”该sub
部分会发生什么?
好的,所以我想在index
控制器的功能中做同样的事情。喜欢 :
public function index($param1="", $param2="")
{
}
这样我就可以直接访问:
- mysite.com/test
- mysite.com/test/someparam1
- mysite.com/test/someparam1/someparam2
然而,考虑到 CI 的内部设计,当我尝试这个时,它一直在寻找一个someparam1' method in the
显然不存在的 test` 控制器。
那么,你会怎么做呢?
附言
1. 请让我们避免与.htaccess
重定向有关的解决方案,让我们坚持使用最适合 CI 的方法(如果有的话)。
2. 不要建议我创建适当的函数(而不是使用一些变量访问器)——如果我想这样做,我早就这样做了
3. 参数最好是对 SEO 友好的 URL 的一部分,而不是与$_GET
等一起使用(例如 mysite.com/test/?param1=someparam1¶m2=someparam2)