【发布时间】:2015-10-15 15:11:43
【问题描述】:
我在 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'
);
验证工作正常,但我在消息数组中声明的消息未被识别。我不知道为什么。它输出的错误是validation.c_sy 关于我做错了什么有什么想法吗?
【问题讨论】:
-
我怀疑是camelCase 问题。尝试将
cSY更改为csy。 -
谢谢!我工作! :) 请把这个放到答案中:)
-
我很高兴我的猜测是正确的。干杯!