用于多语言应用程序的Laravel Custom Validation

时间:2016-12-14 06:56:14

标签: laravel validation multilingual

我正在使用Laravel标准验证,但我想自定义它,因为我在我的应用程序中使用多语言,因此我必须自定义消息。

      $rule_validation = [
        'phone' => 'required|max:20|min:6|regex:/^[0-9]+$/',
        'agree_promo_code' => request('promo_code') ? 'accepted' : '',
        'terms_of_services' => 'accepted',
        'aware' => 'accepted'
        ];

现在我想为agree_promo_code

编写自定义验证消息

我知道要为手机写信息,但对agree_promo_code,terms_of_services有所怀疑。 任何人都可以帮我解决这个问题

但请注意语言。谢谢

2 个答案:

答案 0 :(得分:0)

您可以将第二个数组传递给验证函数,如

 $this->validate($request,[
            'phone' => 'required|max:20|min:6|regex:/^[0-9]+$/',
            'agree_promo_code' => request('promo_code') ? 'accepted' : '',
             'terms_of_services' => 'accepted',
             'aware' => 'accepted'
        ],[
            'phone.required'  => trans('validation.phone'),
            'agree_promo_code.accepted'  => trans('validation.agree_promo_code'),
            'terms_of_services.accepted'  => trans('validation.terms_of_services'),
              'aware.accepted'  => trans('validation.aware'),
        ]);

并在您的resources / lang / {lang} /validation.php文件中({lang}是您的语言目录)。

你可以做点什么

return [
      'phone' => 'Phone validation message',
      'agree_promo_code' => 'agree_promo_code validation message',
      'terms_of_services' => 'terms_of_services validation message',
];

因此,它会根据相应的语言设置您的消息。

答案 1 :(得分:0)

当您为各种语言设置语言文件时 您需要在相应的语言文件夹下创建 validation.php 文件 并为每种字段添加适用于每种验证类型的自定义消息

例如,如果您有名称字段,并且需要验证检查 因此,在您的语言文件夹的验证文件中,您将编写如下内容

    <?php
return [
  'custom' => [
    'name' => [
      'required' => 'O campo nome é obrigatório.'
     ]
    ];

其余所有语言检查将由Laravel本身处理,同时根据为会话选择的区域语言显示验证错误消息