2016-11-01 11 views
0

4つの入力フィールドがあります。それらのうち1つは満たされなければならない。他の3つのフィールドが空の場合はフィールドが必要です

マイフィールド:

<input name="name" placeholder="Name"> 
<input name="hair_style" placeholder="Style"> 
<input name="hair_color" placeholder="Color"> 
<input name="options" placeholder="Options"> 

My機能

$this->validate($request, [ 
    'name' => 'required_if:hair_style,0,', 
]); 

hair_styleは0入力フィールド名であるときに埋められていなければなりません。これはうまくいきますが、私は以下のようにしたいのですが、どういうわけか分かりません。

$this->validate($request, [ 
    'name' => 'required_if:hair_style,empty AND hair_color,empty AND options,empty,', 
]); 

これはこのように動作しています。 hair_style,hair_colorおよびoptionsが空の場合、nameを記入する必要があります。しかし、これはrequired_ifで可能ですか?あなたが必要な場合

$v = Validator::make($data, [ 
    'name' => 'min:1', 
]); 


$v->sometimes('name', 'required', function($input) { 
    return ($input->hair_style == 0 && $input->hair_color == 0 && $input->options == 0); 
}); 

あなたが閉鎖でより多くのロジックを追加することができます...のような:

答えて

0

あなたに試すことができます:あなたがようconditionally add rulesでき

'name' => 'required_if:hair_style,0|required_if:hair_color,0||required_if:options,0', 

を更新

emptyチェック。

+0

をチェックして、私は更新されていない0 – twoam

+0

答え。 –

+0

ありがとう、私の答えが見つかりました! – twoam

0

は、だから私がしなければならなかったすべてはだった:

$this->validate($request, [ 
    'name' => 'required_without_all:hair_style, hair_color, options', 
]); 

詳細については、それが空の場合、私は一度にすべての3つのフィールドをチェックし、確認したいhttps://laravel.com/docs/5.3/validation#rule-required-without-all

関連する問題