如何在laravel4上的验证错误消息中将多语言名称设置为db字段

时间:2013-07-17 15:04:58

标签: php laravel laravel-4

我对laravel 4验证后如何在错误消息中管理数据库字段名称提出了一些疑问。

为了验证表格,我使用了如下的口才:

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.

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

1 个答案:

答案 0 :(得分: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 ...”而不是“foo必须......”。

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

    $validator = Validator::make($input, $rules, $messages);
    $validator->setAttributeNames(array('foo' => 'Bar'));
    if ($validator->passes())
        ...