Два хороших способа добиться этого, используя методы, предназначенные разработчиками Codeigniter.
OPTION ONE:
Если вы всегда ожидаете присутствия параметра "id", вы можете воспользоватьсявозможность передать значение в URI сразу после метода (функции), который вы хотите вызвать.
Пример передачи /[controller]/[method]/[value]
:
http://www.website.com/query/index/5
Затем вы получите доступ к значению "id "в качестве ожидаемого параметра функции.
Class Query extends Controller {
...
// From your URL I assume you have an index method in the Query controller.
function index($id = NULL)
{
// Show current ID value.
echo "ID is $id";
...
}
...
}
ВАРИАНТ ВТОРОЙ:
Если вы хотите разрешить передачу многих параметров в дополнение к идентификатору, вы можете добавить все параметры какkey => пары значений для сегментов URI в любом порядке.
Пример передачи /[controller]/[method]/[key1]/[val1]/[key2]/[val2]/[key3]/[val3]
:
http://www.website.com/query/index/id/5/sort/date/highlight/term
Затем вы должны проанализировать все сегменты URI из 3-го сегмента («id»).) переходит в массив пар ключ => значение с помощью функции uri_to_assoc($segment)
из класса URI.
Class Query extends Controller {
...
// From your code I assume you are calling an index method in the Query controller.
function index()
{
// Get parameters from URI.
// URI Class is initialized by the system automatically.
$data->params = $this->uri->uri_to_assoc(3);
...
}
...
}
Это даст вам легкий доступ ко всем параметрам, и они могут быть в любом порядке вURI, так же, как традиционныйСтрока запроса.
$data->params
теперь будет содержать массив ваших сегментов URI:
Array
(
[id] => 5
[sort] => date
[highlight] => term
)
ГИБРИД ОДНОГО И ДВУХ:
Вы также можете сделать гибрид изгде идентификатор передается как ожидаемый параметр, а остальные параметры передаются как пары ключ => значение.Это хороший вариант, когда требуется идентификатор и все остальные параметры являются необязательными.
Пример передачи /[controller]/[method]/[id]/[key1]/[val1]/[key2]/[val2]
:
http://www.website.com/query/index/5/sort/date/highlight/term
Затем вы должны проанализировать все сегменты URI из 4-го сегмента.("sort") пересылать в массив пар ключ => значение с функцией uri_to_assoc($segment)
из класса URI.
Class Query extends Controller {
...
// From your code I assume you are calling an index method in the Query controller.
function index($id = NULL)
{
// Show current ID value.
echo "ID is $id";
// Get parameters from URI.
// URI Class is initialized by the system automatically.
$data->params = $this->uri->uri_to_assoc(4);
...
}
...
}
$id
будет содержать ваше значение идентификатора, а $data->params
будет содержатьмассив ваших сегментов URI: