验证中的 Laravel 多元化

Posted

技术标签:

【中文标题】验证中的 Laravel 多元化【英文标题】:Laravel pluralization in validation 【发布时间】:2019-07-08 07:45:26 【问题描述】:

我正在开发一个多语言 API,我需要使用复数形式返回翻译后的 Bag。

例子:

'item' => 'required|min:1' 应该返回

项目必须至少有 1 个字符

'item' => 'required|min:2' 应该返回

项目必须至少有 2 个字符

除了迭代数组之外,你知道如何翻译包吗?

我在 lang 文件中试过了:

:attribute 必须至少有 :min 个字符|:attribute 必须至少有 :min 个字符

1 :attribute 必须至少有 :min 个字符|[2,*] :attribute 必须至少有 :min 个字符。

【问题讨论】:

为其他语言创建文件夹,例如 lang 目录中的 en 文件夹,并在其中创建 validation.php 文件。 【参考方案1】:

使用 Laravel trans_choice 你可以做到:

在您的代码中

    $rules = [
        'item' => 'required|min:1'
    ];

    $attributeNames = array(
        'item' => 'Item'
    );       

    // Pass your length here
    $msg = [
        'min' => trans_choice('validation.min', 1)
    ];

    $this->validate($request,$rules,$msg,$attributeNames);

在 lang/en/validation.php 中

'min' => ':attribute must have at least :min character|:attribute must have at least :min characters'

参考这个网址enter link description here

【讨论】:

以上是关于验证中的 Laravel 多元化的主要内容,如果未能解决你的问题,请参考以下文章

如何验证 Laravel 中的确切单词?

laravel 中的唯一字段验证问题

为啥 Laravel 中的验证不能正常工作?

Laravel5 中的图像大小验证

Laravel, jQuery - 在 Laravel 中验证后返回括号表示法(jQuery 中的点到括号表示法)

模型中的 Laravel 5 验证