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

时间:2016-11-03 16:03:01

标签: laravel laravel-5.2 jsvalidation

我正在使用适用于Laravel的dimsav translatable和proengsoft / laravel-jsvalidation包创建一个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',       
],

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

1 个答案:

答案 0 :(得分:1)

内部App/Http/Requests/YourRequest

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

您可以为不同的验证规则设置不同的消息(必需,最大等)

用于设置属性的自定义名称

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

<强> EDITED 要全局设置属性名称,请转到lang/en/validation,然后您将看到属性数组。根据您的要求进行更改。

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