Я работал над веб-приложением, которое было ранее создано людьми, с которыми у меня нет возможности связаться.
Я считаю, что мы в настоящее время на CI_VERSION 1.7.0.
Я убедился, что все конфигурационные переменные enable_query / allow_get_array верны.
Я вижу правильные значения в заголовке (параметры строки запроса).
Пример проблемы ниже:
//E.g.
//URL: http://www.fakeURL.com/something/stuff?color=blue&gender=boy
var_dump($_GET);
// array(1) { '/something/stuff' => string(0) "" }
Попробуйте получить параметры URL с помощью встроенного класса: input.
$p = $this->input->get();
var_dump($p);
Codeigniter рекомендую сделать это так. Например, вы не можете получить параметр дважды с помощью этой функции, поскольку он очищается во второй раз. Поэтому мы не знаем, как они управляют параметрами.
В более ранних версиях CI $_GET
массив включал запрошенный контроллер / метод после того, как URL был переписан (как подробно описано в этот ответ), остальная информация в нем была сохранена во входном классе и удалена (см. устаревшие документы).
Как указано в другом ответе, вам нужно использовать $this->input->get();
который будет содержать оригинал $_GET
Титулы.
Я закончил тем, что использовал это решение, найденное здесь: https://stackoverflow.com/a/2283881/1626354
Я скажу, что это скорее «обходной путь», чем решение, но я не могу больше тратить время на это прямо сейчас.
Спасибо всем за ваши полезные предложения. Надеюсь, это когда-нибудь будет полезно и кому-то еще.