Codeigniter 验证始终 returns false 但 validation_errors() 为空

Codeigniter validation always returns false but validation_errors() is empty

我正在使用 https://github.com/jamierumbelow/codeigniter-base-model 存储库中的 MY_Model。它使用 Codeigniter 的内置验证库。

问题是在我的模型中验证总是失败。但是 validation_error() 是空的。 这是我的规则:

protected $validate = [
    [
        'field' => 'text',
        'label' => 'text',
        'rules' => 'required',
    ]
];

这是我的控制器代码:

$fields = [
    'title'=>'test title',
    'text' => 'message text',
    'user_id_from' => '1',
    'user_id_to' => '1'
];

$this->message_model->insert($fields);

这就是它在图书馆中的使用方式:

$this->form_validation->set_rules($this->validate);

if ($this->form_validation->run() === TRUE)
{
    return $data;
}
else
{
    $this->validation_error = validation_errors();
    return FALSE;
}

$this->validation_error 始终为空且验证始终失败

MY_Model 库中存在错误。

当数据源类型不是 "post" 时,将跳过验证。 要使库与 "get" 一起工作,请将此行添加到库中 set_rules 方法之前:

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

这里有解释: https://www.codeigniter.com/userguide3/libraries/form_validation.html#validating-an-array-other-than-post