Параметр перехода в функции - PullRequest
0 голосов
/ 06 марта 2012

У меня есть контроллер в codeigniter под названием 'Main' с этой функцией:

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

    }

Я хочу вызвать его через URI, «перепрыгивая» по первому параметру, чтобы он оставался «ложным»: Я хотел бы быть в состоянии через URI, используя что-то вроде:

'main/index/false/myfilter'

Однако это не работает, кто-нибудь знает, как я могу «перескочить» этот первый параметр, чтобы его значение оставалось ложным, но я могу изменить фильтр?

(изменение порядка параметров в функции НЕ является опцией)

1 Ответ

1 голос
/ 06 марта 2012

Просто проверьте строку 'false' в верхней части метода контроллера:

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

  // ...
}

Другая возможность может заключаться в использовании пользовательского маршрута и просто отбрасывать первый параметр. В вашем файле app/config/routes.php добавьте правило:

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

Теперь, когда вы заходите в 'main / index / myfilter', для параметра $id будет установлено значение false (строка, а не логическое значение!)

...