我在我的模型中使用自定义方法验证规则(使用Kohana 3.2)。我遵循the documentation上列出的格式。
// Calls A_Class::a_method($value);
array(array('A_Class', 'a_method')),
但是,如果规则失败,我似乎无法弄清楚如何添加自定义错误消息。
任何帮助?
答案 0 :(得分:7)
对于这个例子,我们假设一个模态“用户”并验证字段“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 强>
添加了一个表单文件夹,以便我们可以选择要加载错误的消息文件。消息文件与模型名称(用户)匹配
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...'
),
);
现在在您的控制器中验证并显示错误消息
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);
)
)