CodeIgniter: передача параметров метода при использовании «enable_query_strings» - PullRequest
1 голос
/ 26 августа 2010

Я включил использование строк запроса, установив переменную конфигурации "enable_query_strings" = TRUE.

Я понимаю, что для вызова метода X класса Y мой URL будет выглядеть следующим образом:

http://localhost/ci_sample/index.php?c=Y&m=X

Однако, что если моя сигнатура функции для X равна

function X($param1, $param2) {...}

как должна выглядеть моя строка запроса для передачи двух параметров в X ()?

(Кстати, я решил использовать этот подход, потому что я не смог найти статью / форум по mod_rewrite для удаления index.php, которая бы работала на моем компьютере. Я использую XAMPP на платформе Windows)

С уважением,

Эрвин

Ответы [ 2 ]

3 голосов
/ 26 августа 2010

Похоже, что если вы хотите использовать "enable_query_strings" = TRUE, вы не можете передать параметры в функцию X ().

Это то, что сказано в руководстве пользователя

Обратите внимание: если вы используете строки запроса, вам придется создавать свои собственные URL-адреса, а не использовать помощники URL-адресов (и другие помощники, которые генерируют URL-адреса, например некоторые помощники формы), поскольку они предназначены для работы с сегментом на основе URL.

Чтобы обойти это, вы должны сделать это:

http://localhost/ci_sample/index.php?c=Y&m=X&param1=bla&param2=foo

function X()
{
   $param1 = $this->input->get('param1');
   $param2 = $this->input->get('param2');
}
0 голосов
/ 28 августа 2010

Вам не нужно использовать строки запроса только потому, что вы не можете удалить index.php из URL, вы можете использовать URL-адреса так: Если вы включите строки запроса в config.php, а также установите uri_protocol на "PATH_INFO", вы можете использовать оба. Вот так: example.com/index.php/controller/method/param1/param2/?param3=wellhellothere

Ваша проблема с получением mod_rewrite, вероятно, связана с тем, что вы запускаете CI в подкаталоге. RewriteBase /ci_sample/ сразу после RewriteEngine On должно сработать. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...