使用 codeigniter form_validation 向字段添加错误消息

bot*_*wer 0 php validation codeigniter

使用 Codeigniter,您可以使用 form_validation 库验证表单。但是我并不总是使用它,但我喜欢使用该form_error('fieldname')功能。

是否可以手动将错误消息推送到字段而不执行form_validation->run().

bot*_*wer 6

我找到了一种 Codeigniter 方法来添加我想要的功能。通过扩展system/libraries/Form_validation.php.

首先创建文件: application/libraries/MY_Form_validation.php

然后扩展CI_Form_validation类:

<?php
/**
 * Created by PhpStorm.
 * User: william
 * Date: 02/02/2016
 * Time: 22:56
 */

class MY_Form_validation extends CI_Form_validation{

    /**
     * set error message
     *
     * sets the error message associated with a particular field
     *
     * @param   string  $field  Field name
     * @param   string  $error      Error message
     */
    public function setError($field, $error){
        $this->_field_data[$field]['error'] = $error;
    }

}
Run Code Online (Sandbox Code Playgroud)

现在您可以使用form_validation->setError('fieldname','error')手动设置错误消息:

class Test extends CI_Controller{

    function index(){

        $this->load->library('form_validation');

        if (/* your validation outside of the form_validation */) {
            $this->form_validation->setError('username', 'Invalid login credentials');      
        }

        $this->load->view('test');
    }

}
Run Code Online (Sandbox Code Playgroud)

笔记!当您想在不使用回调的情况下进行一些自定义验证时使用它