【问题标题】:Laravel Validator always shows required error messageLaravel Validator 总是显示必需的错误信息
【发布时间】:2014-11-26 11:48:21
【问题描述】:

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

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

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

提前致谢。

【问题讨论】:

    标签: php validation laravel-4


    【解决方案1】:

    试试这个

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

    “şifre”是输入名称。

    【讨论】:

    • 它不起作用,我认为问题在于土耳其字符以及我的输入名称之间的空格,例如:“Şifre”和“Şifre Tekrarı”。我会在测试后反馈。
    • 当然不使用土耳其字符会更好。但我认为问题与土耳其字符无关。土耳其语字符问题虽然“密码不匹配”不会失败。我想还有一个案例。我要去测试了。
    【解决方案2】:

    我找到了解决方案。 “Ş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ı 字段”。

    工作顺利。

    感谢您的耐心等待。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-27
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      • 2011-08-13
      相关资源
      最近更新 更多