【问题标题】:Custom Validation Attributes for Array Type Form Fields using proengsoft/laravel-jsvalidation in Laravel 5.2Laravel 5.2 中使用 proengsoft/laravel-jsvalidation 的数组类型表单字段的自定义验证属性
【发布时间】:2016-11-04 01:28:44
【问题描述】:

我正在为 Laravel 使用 dimsav 可翻译和 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',       
],

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

【问题讨论】:

  • 我觉得 proengsoft/laravel-jsvalidation 不是一个好包

标签: laravel laravel-5.2 jsvalidation


【解决方案1】:

内部App/Http/Requests/YourRequest

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

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

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

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

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

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

【讨论】:

  • 谢谢,但这不是我想要的。我希望能够为每个 validation.php 更改属性数组上的字段名称。
  • @HarleyFuagras 更新了我的答案。请检查它是否有效。
  • 是的,这就是我正在尝试的,但它不起作用。您可以在我的问题的最后一段代码中看到它。
  • 对不起我的错。贴错代码。再次更新。请立即查看
猜你喜欢
  • 2017-02-04
  • 2018-08-30
  • 1970-01-01
  • 2016-09-09
  • 2015-08-22
  • 2016-12-16
  • 2016-08-28
  • 1970-01-01
  • 2016-04-18
相关资源
最近更新 更多