Гораздо лучший подход и метод, который разработчики CI планировали, - это добавить все параметры поиска в URI вместо строки запроса, например:
http://site.com/products/search/term/computer/sort/price/cat/laptop
Затем вы должны проанализировать все сегменты URI из 3-го сегмента («term») вперед в массив пар ключ => значение с функцией uri_to_assoc($segment)
из класса URI.
Class Products extends Controller {
...
// From your code I assume you are calling a search method.
function search()
{
// Get search parameters from URI.
// URI Class is initialized by the system automatically.
$data->search_params = $this->uri->uri_to_assoc(3);
...
}
...
}
Это даст вам легкий доступ ко всем параметрам поиска, и они могут быть в любом порядке в URI, как и в обычной строке запроса.
$data->search_params
теперь будет содержать массив ваших сегментов URI:
Array
(
[term] => computer
[sort] => price
[cat] => laptop
)
Подробнее о классе URI читайте здесь: http://codeigniter.com/user_guide/libraries/uri.html