我在laravel 4.2中进行了自定义验证并放入了app / start / global.php,我的代码就是这个
Validator::extend('captcha', function($attribute, $value, $parameters)
{
$captcha = $_SESSION["captcha"];
return $value == $captcha;
});
Validator::extend('cSY', function($attribute, $value, $parameters)
{
$appnd = "SY " . $value ."-". ($value + 1);
$chkSY = DB::table('dbo_schoolyear')
->where('SchoolYear' , '=' , $appnd)
->count();
if($chkSY)
{
return false;
}
else
{
return true;
}
});
然后在我的控制器中这是我的代码
$rules = array(
'nsy' => 'required|integer|min:2005|cSY'
);
$messages = array(
'nsy.required' => 'Please enter Starting Year.',
'nsy.integer' => 'Starting year can only contain integer values',
'nsy.min' => 'School Year Minimum is 2005',
'nsy.cSY' => 'School Year exists'
);
验证工作正常,但我在messages数组中声明的消息无法识别。我不知道为什么。它输出的错误是validation.c_sy关于我做错了什么的想法?
答案 0 :(得分:1)
这是一个camelCase问题:recvfrom
被解释为cSY
。
只需将c_sy
更改为cSY
。