使用 Laravel 5.2 中的 proengsoft/laravel-jsvalidation 的数组类型表单字段的自定义验证属性

Custom Validation Attributes for Array Type Form Fields using proengsoft/laravel-jsvalidation in Laravel 5.2

我正在使用 dimsav 可翻译和 proengsoft/laravel-jsvalidation 包为 Laravel 创建一个 CRUD。 表单字段名称必须遵循这样的数组结构...

<div class="form-group">
    {!! Form::label("es[title]", trans("messages.title"), ["class" => "control-label"]) !!}
    {!! Form::text("es[title]", getFormInput($entry, "title", $locale), ["class" => "form-control", "id" => "es[title]"]) !!}
</div>

为了能够在控制器上轻松使用质量分配。

正在使用 CreateRequest 验证创建表单,如下所示...

{
    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
         return [
             'es.title' => 'required|max:255',           
         ];
    }
}

我不知道如何在 resources/lang/validation.php 文件中用更友好的文本更改属性占位符。我尝试了以下选项...

'attributes' => [      
    'title' => 'título',
    //'es.title' => 'título',       
    //'es[title]' => 'título',       
],

...但是它们中的任何一个都在工作。正在验证表单,命名字段 'es.title',但显示的错误消息没有正确替换字段名称,即使我也将属性数组键命名为 'es.title'。有什么想法吗?

里面App/Http/Requests/YourRequest

public function messages()
    {
        return [
            'es.title.required' => 'You forgot título!',
        ];
    }

您可以为不同的验证规则设置不同的消息(required,max etc)

为属性设置自定义名称

public function attributes()
{
    return [
        'es.title' => 'título'
    ];
}

已编辑 要全局设置属性名称,请转到 lang/en/validation,您将看到一个属性数组。根据您的要求更改它。

'attributes' => [
    'es' => [
        'title' => 'título'
    ]
],