Концепция form_validation основана на использовании POST, так как функция проверки формы form_validation->run()
создает свой массив проверки с POST.
см. Codeigniter public function run()
в строке 417 из system/libraries/Form_validation.php
:
$validation_array = empty($this->validation_data)
? $_POST
: $this->validation_data;
но, как указано в ответе @Hasta Dhana, вы можете использовать $ _GET или любой другой массив, например:
$this->form_validation->set_data($_GET);
, если хотите проверить массив, который не происходит из данных $ _POST . Этот массив занимает место $this->validation_data
в предложении if