Laravel Validator始终显示必需的错误消息

时间:2014-11-26 11:48:22

标签: php validation laravel-4

在测试时,系统总是返回我需要的自定义消息。例如,我希望验证器检查密码是否匹配。但错误消息显示“需要密码验证”而不是“密码不匹配”

这是我的验证功能和规则。

protected function getRegisterValidator()
{
    $message = array(
        'same' => ':attribute ve :other tekrarları birbirini tutmalı.',
        'between' => ':attribute en az :min en fazla :max karakterden oluşabilir.',
        'min' => ':attribute en az :min karakter içermelidir.',
        'max' => ':attribute maksimum :max karakterden oluşabilir.',
        'alpha_num' => 'girilen :attribute alfanumerik olmalıdır.',
        'unique' => 'Bu :attribute ile zaten önceden kayıt olunmuş.',
        'email' => ':attribute geçerli bir mail adresi değil.',
        'captcha' => 'Doğrulama karakterlerini yanlış girdiniz.',
        'required' => ':attribute alanı boş olamaz.'
    );
    return Validator::make(Input::all(),array(
        'Kurum' => 'required',
        'Ad' => 'required',
        'Soyad' => 'required',
        'Görev' => 'required',
        'Email' => 'required|email|unique:user',
        'Email Tekrarı'=> 'required|same:Email',
        'Şifre' => 'required|between:8,12',
        'Şifre Tekrarı' => 'required|same:Şifre',
        'Doğrulama' => 'captcha|required'
    ), $message);
}

提前致谢。

2 个答案:

答案 0 :(得分:1)

试试这个

$message = [
        'şifre.required' => 'Şifre alanı boş bırakılamaz',
        'şifre.same' => 'Şifre alanları eşleşmiyor',
    ];

“şifre”是输入名称。

答案 1 :(得分:0)

我找到了解决方案。字段名称之间的空格如“ŞifreTekrarı”或“EmailTekrarı”导致错误和laravel验证器无法比较“Şifre”和“ŞifreTekrarı”字段之间的值。

解决方案是在HTML文件(或刀片)中设置不带空格的字段名称,并且不涉及任何土耳其字符。

protected function getRegisterValidator()
{
    $message = array(
        'same' => ':attribute ve :other tekrarları birbirini tutmalı.',
        'between' => ':attribute en az :min en fazla :max karakterden oluşabilir.',
        'min' => ':attribute en az :min karakter içermelidir.',
        'max' => ':attribute maksimum :max karakterden oluşabilir.',
        'alpha_num' => 'girilen :attribute alfanumerik olmalıdır.',
        'unique' => 'Bu :attribute ile zaten önceden kayıt olunmuş.',
        'email' => ':attribute geçerli bir mail adresi değil.',
        'captcha' => 'Doğrulama karakterlerini yanlış girdiniz.',
        'required' => ':attribute alanı boş olamaz.'
    );
    return Validator::make(Input::all(),array(
        'Kurum' => 'required|min:3|max:60',
        'Ad' => 'required|min:3|max:30',
        'Soyad' => 'required|min:3|max:30',
        'Görev' => 'required|min:1|max:60',
        'Email' => 'required|email|unique:user|same:Email_Tekrarı',
        'Email_Tekrarı'=> 'required',
        'Şifre' => 'required|between:8,12|same:Şifre_Tekrarı',
        'Şifre_Tekrarı' => 'required',
        'Doğrulama' => 'captcha|required'
    ), $message);
}

重要提示:

如果您显示的错误消息包含“Email_Tekrar”这些字段名称(我的意思是包含了_字符),则错误消息会忽略“_”字符并显示错误消息,如“需要电子邮件Tekrarı字段”。< / p>

顺利运作。

感谢您的耐心等待。