2017-09-18 14 views
3

"選択"入力からのデータを検証するためにラーベールの "イン"検証を使用したいが、選択のオプションの一部には検証文字列の特殊文字であるカンマ。コンマをエスケープする方法はありますか? 例: 選択肢に "foo"、 "bar"、 "foo、bar"オプションがある場合、次のLaravel検証は機能しません。 "field" => "in:foo、bar、foo、bar"値のコンマでラーバル検証

ヘルプ

答えて

2

してくれてありがとうあなたが代わりにRuleファサードを使用することができます。

use Illuminate\Validation\Rule; 

Validator::make($data, [ 
    'field' => [ 
     Rule::in(['foo', 'bar', 'foo, bar']), 
    ], 
]); 

もっと検証ロジックはhereを見つけることができます。

+0

これはLaravel 5.4以下では機能しません。 Laravel 5.4では、特殊文字をエスケープするために二重引用符を使用する必要があります。 '' foo、bar、 '' foo、bar '' ''の '' field '=>'(または '' Rule :: in(['foo'、 'bar'、 '"より詳細な情報は、[v5.5](https://github.com/laravel/framework/blob/5.5/src/Illuminate/Validation/Rules/In.php#L37)と[v5.4 ](https://github.com/laravel/framework/blob/5.4/src/Illuminate/Validation/Rules/In.php#L37)。 foo、bar、 "foo、bar"、 "foo" "bar" ''の中の" symbol use ""( '' test' => 'が必須です)をエスケープします。 –

関連する問題