如果这是一个令人难以置信的愚蠢问题,请原谅我,因为我是CodeIgniter的新手。
我的验证系统有一个名为Verify的控制器。我希望能够像site.com/verify/123/abcd
这样使用它,但我只想使用索引函数,因此两个URL段都需要使用它。
我确信这可以通过URL路由以某种方式完成,但我无法弄清楚如何将两个URL段传递给Verify的索引函数。
答案 0 :(得分:7)
routes.php中的这样的事情应该可以完成这项工作:
$ route ['verify /(:any)/(:any)'] =“verify / index / $ 1 / $ 2”;
答案 1 :(得分:1)
我很确定你可以在CodeIgniter多个参数中传递任何控制器方法,而无需修改路由或.htaccess,除非我误解了这个问题。
function index($arg_one, $arg_two)
{
}
$ arg_one表示123和$ arg_two表示示例URI中的abcd。
答案 2 :(得分:0)
您需要编辑路由或编写htaccess规则,但我不明白为什么要限制索引函数。
答案 3 :(得分:0)
如果您因某些原因不想使用路线,那么您可以将此功能添加到相关控制器中。
public function _remap($method_in, $params = array()) {
$method = 'process_'.$method_in;
if (method_exists($this, $method)) {
return call_user_func_array(array($this, $method), $params);
}
array_unshift($params, $method_in);
$this->index($params);
}
基本上它与CI中的默认行为相同,除了不是在“无法查找方法”上发送404,它会向索引发送未完成的方法调用。
您需要更改索引函数以将数组作为第一个参数。 或者,如果您知道自己只需要2个参数,则可以将最后2行更改为
$this->index($method_in, $params[0]);
当然,有人使用与控制器中的方法相同的参数,两个解决方案都失败了。