2016-09-18 17 views
0
私はlaravelに使用して自分のフォームフィールドを検証する

5.Laravel 5つの検証

フォームフィールド1] - > [ユーザーID:

フォームフィールド2 - >その他の名称:

フォームフィールドのどちらか必要とされている。 私は、ユーザーIDが存在する場合、他の名前は空白でなければならず、他の名前が存在する場合は、空白にする必要があります。user_id

私が使用しようとしています:

$validator = Validator::make(
          [ 
         'user_id ' => $user_id, 
         'user_name' => $user_name 
          ], [ 
         'user_id' => 'required_without:user_name', 
         'user_name' => 'required_without:user_id' 
      ]); 
      if ($validator->fails()) { 
       return Utility::validation_err($validator); 
      } 

をユーザーIDは、それが他の名前が存在しない場合、エラーユーザIDが必要とされて私を与える存在する場合であっても記録を更新中。また、私は両方を記入している場合は両方を受け入れる。両方のフィールドのいずれかを受け入れる必要があります。

ご協力いただければ幸いです。

+0

これを試してみてください[同じ質問と回答](http://stackoverflow.com/questions/30635678/laravel-validation-required-only-and-only-one-field) –

答えて

1

サンプル "only_one_id_name_required"に独自の検証ルールを使用できます。両方のフィールドに適用する必要があります。次の空のフィールドの要求をカバーするために)の代わりに、延長()\ AppServiceProvider

Validator::extendImplicit('only_one_id_name_required', function($attribute, $value, $parameters, $validator) { 
    return (request()->has('user_id') xor request()->has('user_name')); 
}); 

使用extendImplicit(APP \プロバイダでValidatorを拡張する置きます。

関連する問題