Laravel验证器总是显示所需的错误消息


Laravel Validator always shows required error message

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

这是我的验证函数和规则。

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);
}

提前谢谢。

试试这个

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

"şifre"是输入名称。

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

解决方案是在 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ı字段是必需的"。

工作顺利。

感谢您的耐心等待。