我通过设置config变量“enable_query_strings”= TRUE来启用查询字符串。
据我所知,为了调用Y类的方法X,我的URL将如下所示:
http://localhost/ci_sample/index.php?c=Y&m=X
但是,如果X的函数签名是
,该怎么办?function X($param1, $param2) {...}
我的查询字符串应该如何将两个参数传递给X()?
(顺便说一句,我已经决定使用这种方法,因为我找不到mod_rewrite上的文章/论坛来删除可以在我的机器上运行的index.php。我在Windows平台上使用XAMPP)
此致
欧文
答案 0 :(得分:3)
似乎如果你想使用“enable_query_strings”= TRUE,你就不能将参数传递给函数X()。
这就是user guide
中所说的内容请注意:如果您使用查询字符串,则必须构建自己的URL,而不是使用URL帮助程序(以及生成URL的其他帮助程序,如某些表单帮助程序),因为它们旨在与段一起使用基于URL。
要解决这个问题,你必须这样做:
http://localhost/ci_sample/index.php?c=Y&m=X¶m1=bla¶m2=foo
function X()
{
$param1 = $this->input->get('param1');
$param2 = $this->input->get('param2');
}
答案 1 :(得分:0)
您不必仅仅因为无法从URL中删除index.php而使用查询字符串,您可以使用以下URL:example.com/index.php/controller/method/param1/param2。如果您在config.php中启用查询字符串并将uri_protocol
设置为"PATH_INFO"
,则可以同时使用这两者。像这样:example.com/index.php/controller/method/param1/param2/?param3=wellhellothere
让mod_rewrite工作的问题可能与您在子目录中运行CI有关。在RewriteBase /ci_sample/
之后直接RewriteEngine On
应该做到这一点。 :)