2016-11-03 2 views
2

Laravelのdimsav translatableおよびproengsoft/laravel-jsvalidationパッケージを使用してCRUDを作成しています。 フォームフィールド名がArray Typeフォームのカスタム検証属性Laravelのproengsoft/laravel-jsvalidationを使用するフィールド5.2

<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> 

コントローラ上で容易に大量asignmentを使用できるようにするために...このようなアレイ構造に従わなければなりません。

次のように作成するフォームはCreateRequestで検証されている...

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

私はリソース/ LANG/validation.phpファイルで、より親しみやすいテキストと属性のプレースホルダを変更する方法がわかりません。私は以下のオプションを試しました...

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

...しかし、いずれも動作しています。フォームは 'es.title'フィールドの名前を確認して検証されていますが、属性の配列キーに 'es.title'という名前を付けてもエラーメッセージが正しく表示されません。何か案は?

+0

私はproengsoft/laravel-jsvalidationが – aleixfabra

答えて

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' 
    ] 
], 
+0

おかげで良いパッケージはありませんが、それは私が望んでいないと思います。私は、各validation.phpの属性配列のフィールド名を変更できるようにしたい。 –

+0

@HarleyFuagrasが私の答えを更新しました。それが動作するかどうかを確認してください。 – shoieb0101

+0

うん、それは私が試していたもので、うまくいきません。あなたは私の質問の最後のコードでそれを見ることができます。 –

関連する問題