Reputation: 2578
This is my situation:
Assume I have a radio input
in my html form which it's value must to exists in a table only IF user check one of them, else the value have to be zero
this my structure:
<div class="inputGroup">
<input id="first_change1" name="first_change" type="radio" value="{{ $game->teamOne->id }}" {{ old('first_change') == $game->teamOne->id ? 'checked="checked"' : '' }} />
<label for="first_change1" class="farsi">{{ $game->teamOne->name }}</label>
</div>
<div class="inputGroup">
<input id="first_change2" name="first_change" type="radio" value="{{ $game->teamTwo->id }}" {{ old('first_change') == $game->teamTwo->id ? 'checked="checked"' : '' }} />
<label for="first_change2" class="farsi">{{ $game->teamTwo->name }}</label>
</div>
<div class="inputGroup">
<input id="first_change3" name="first_change" type="radio" value="0" {{ old('first_change') == "0" ? 'checked="checked"' : '' }} />
<label for="first_change3" class="farsi">None of them</label>
</div>
@if( $errors->has('first_change'))
<h6 class="alert alert-danger farsi text-danger rtl text-right">
{{ $errors->first('first_change') }} <i class="fa fa-2x fa-arrow-up fleft" style="bottom: 5px !important;"></i>
</h6>
@endif
And this is my current validation for this field:
'first_change' => 'required|exists:fc_teams,id',
But I need something like this:
'first_change' => 'required|[IF VALUE IS NOT -0-; THEN]exists:fc_teams,id',
Upvotes: 2
Views: 597
Reputation: 33186
You could build your validation conditionally:
$first_change_validation = [
'required',
];
if ($request->get('first_change') == 0) {
$first_change_validation[] = 'exists:fc_teams,id';
}
And then use this array in your validation:
$this->validate($request, [
'first_change' => $first_change_validation,
]);
Upvotes: 2