表单验证不适用于表单 GET 方法

Form validation not working with form GET method

我正在尝试 post 我的表单 method="GET" 而不是 POST

Codeigniter 的 form_validation->run() 不起作用。

它没有在视图页面中返回任何 form_error

form_validation 的概念基于 POST 的使用,因为表单验证函数 form_validation->run() 使用 POST.

构建其验证数组

请参阅 system/libraries/Form_validation.php 第 417 行附近的 Codeigniter public function run()

$validation_array = empty($this->validation_data)
          ? $_POST
          : $this->validation_data;

但正如@Hasta Dhana 的回答中指出的那样,您可以使用 $_GET 或任何其他数组,例如:

$this->form_validation->set_data($_GET);

如果你想validate an array that does not originate from $_POST data。然后,此数组将取代 if 子句

中的 $this->validation_data

如果你必须使用$_GET,你可以在验证规则之前设置验证数据:

$this->form_validation->set_data($_GET);

参见:Validating an Array (other than $_POST)