2

关于在 laravel 4 验证后如何管理错误消息中的数据库字段名称,我几乎没有疑问。

为了验证表单,我使用了 eloquent 如下:

public static function validate($input)
    {
        $validation = array(
            'rules' => array(
                'title'     => 'required|min:5'
            ),
            'messages' => array(
                'title.required'            => 'Inserer un titre!'
            )
        );

        return Validator::make($input, $validation['rules'], $validation['messages']);
    }

为了翻译错误消息,我使用了这个 github repo:https ://github.com/caouecs/Laravel4-lang

除了属性(db 列)名称的翻译外,每件事都可以正常工作。我不知道该怎么做,有什么建议吗?

fr : Le texte **title** doit contenir au moins 5 caractères.
en : The **title** must be at least 5 characters.

(在每种情况下,标题都保留为英文。)

4

1 回答 1

1

有两种方法可以为验证错误消息提供自定义字段名称。

首先是使用语言配置文件 app/lang/LANG/validation.php

/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/

'attributes' => array('foo' => 'Bar'),

这将为 foo 字段生成验证错误,例如“The Bar must be...”而不是“The foo must be ...”。

第二种方式没有记录。您可以使用 Validator 类的 setAttributeNames() 方法在运行时提供自定义数组:

    $validator = Validator::make($input, $rules, $messages);
    $validator->setAttributeNames(array('foo' => 'Bar'));
    if ($validator->passes())
        ...
于 2013-11-12T18:23:27.903 回答