Giter Site home page Giter Site logo

customize readable errors about gump HOT 4 CLOSED

wixel avatar wixel commented on September 23, 2024
customize readable errors

from gump.

Comments (4)

FrostBy avatar FrostBy commented on September 23, 2024

@SeanNieuwoudt
A good example is the implementation of filters in Yii framework. In Yii we can pass custom error message.

public function rules()
{

    return
        array(
            array(
                'new_email',
                'unique',
                'attributeName' => 'email',
                'on' => 'changeEmail',
                'message' => 'Some message'
            ),
            'login, password, email, repeat_password, repeat_email,agree',
            'required',
            'on' => 'registerwcaptcha'
        ,
            array('login', 'length', 'max' => 32, 'min' => 3),
            array('role', 'length', 'max' => 32, 'min' => 3),
            array('repeat_new_email', 'compare', 'compareAttribute' => 'new_email', 'on' => 'changeEmail'),
            array('email', 'unique'),
            array('login', 'unique'),
            array('password, email, skype', 'length', 'max' => 255),
            array('first_name, last_name', 'length', 'max' => 32),
        );
}

from gump.

sn avatar sn commented on September 23, 2024

Thanks guys,

I will definitely look into this one during the course of the week. The get_readable_errors() method was initially meant to be more of a lightweight helper if you wanted to use it, but more and more people are pointing out that it needs to be improved.

S

from gump.

volter9 avatar volter9 commented on September 23, 2024

It's pretty easy to implement readable errors in Gump.
All you need to add is just a property, method and modify get_readable_errors method:

// Custom errors
protected $custom_errors = array();

/* ... */

/**
 * Adds a custom error
 *
 * @access public
 * @param string $validator
 * @param strimg $message
 */
public function add_custom_error($validator, $message)
{
    $validator = 'validate_' . $validator;
    $this->custom_errors[$validator] = $message;
}

/* ... */

public function get_readable_errors($convert_to_string = false, $field_class="field", $error_class="error-message")
{
    /* ... */

    foreach($this->errors as $e) {

        $rule = $e['rule'];
        $field = ucwords(str_replace(array('_','-'), chr(32), $e['field']));
        $param = $e['param'];

        // Custom errors
        if ($msg = $this->custom_errors[$rule]) {
            $resp[] = sprintf($msg, "<span class=\"$field_class\">$field</span>", "<span class=\"$field_class\">$param</span>");

            continue;
        }

        switch($rule) {
            /* ... */
        }
    }

    /* ... */
}

Something like this.
Good luck!

from gump.

filisko avatar filisko commented on September 23, 2024

Release 1.5 makes it easier to use.
Cheers

from gump.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.