krische
krische

Reputation: 1010

Kohana 3.2: Custom error message for a custom validation rule?

I am using a custom method for a validation rule in my model (using Kohana 3.2). I am following the format listed on the documentation.

// Calls A_Class::a_method($value);
array(array('A_Class', 'a_method')),

But I can't seem to figure out how to add a custom error message if the rule fails.

Any help?

Upvotes: 1

Views: 4951

Answers (1)

Fady Khalife
Fady Khalife

Reputation: 113

For this example we will assume a modal "user" and validating the field "username"

/application/classes/model/user.php

class Model_User extends ORM
{
    public function rules()
    {
        return array(
            'username' => array(
                array('not_empty'),
                array('A_Class::a_method', array(':value')),
            )
        );
    }
}

A_Class

public static function a_method($value)
{
    // Validate and return TRUE or FALSE
}

/application/messages/forms/user.php
Added a forms folder so show we can select message file to load with errors. Message file matches model name (user)

return array(
    'username' => array(
        'not_empty'         => 'Custom error message for not_empty method',
        'A_Class::a_method' => 'Custom error message for you own validation rule...'
    ),
);

Now in your controller to validate and display the error messages

class Controller_User extends Controller
{
    // User model instance
    $model = ORM::factory('user');

    // Set some data to the model
    $model->username - 'bob';

    // Try to validate and save
    try
    {
        $model->save()
    }
    catch (ORM_Validation_Exception $e)
    {
        // Loads messages from forms/user.php
        $errors = $e->errors('forms');

        // See the custom error messages
        echo Debug::vars($errors);
    )
)

Upvotes: 7

Related Questions