代码之家  ›  专栏  ›  技术社区  ›  rostamiani

Codeigniter validation始终返回false,但validation_errors()为空

  •  -2
  • rostamiani  · 技术社区  · 6 年前

    我使用的是 https://github.com/jamierumbelow/codeigniter-base-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->验证错误始终为空,验证始终失败

    1 回复  |  直到 6 年前
        1
  •  -1
  •   rostamiani    6 年前

    我的模型库中有一个错误。

    当数据源类型不是“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