跳转参数功能

时间:2012-03-06 19:03:25

标签: php function codeigniter uri parameter-passing

我在codeigniter中有一个名为'Main'的控制器,具有以下功能:

public function index ($id = false, $filter ='htmlentities') {
    ...
    ...

    }

我想通过URI'跳'第一个参数调用它,使其保持'false': 我想通过URI使用类似的东西:

'main/index/false/myfilter'

然而,这不起作用,有没有人知道如何'跳'这个第一个参数,以便它的值仍然是假的,但我能够更改过滤器?

(在功能中更改参数顺序不是一个选项)

1 个答案:

答案 0 :(得分:1)

只需测试控制器方法顶部的字符串'false'

public function index ($id = false, $filter ='htmlentities') {
  if ($id == 'false') {
    $id = false;
  }

  // ...
}

另一种可能性是使用custom route并简单地丢弃第一个参数。在app/config/routes.php文件中,添加规则:

$route['main/index/:filter'] = 'main/index/false/$1';

现在,当您访问'main / index / myfilter'时,$id参数将设置为false(字符串,而不是布尔值!)