I have an problem using required_unless validation.
What I want to do is say that building name is required when building number is empty or other way round so building number is required when building name is empty. At the moment it requires both.
public function rules(Request $request)
{
$id = $request->input('entity_id');
$entity = Entity::with('address')
->find($id);
$validation = $entity->id;
return [
'name' => 'required|alpha_special|unique:entities,name,'.$validation.'|min:3|max:30',
'type' => 'required',
'email' => 'required|email|unique:entities,email,'.$validation,
'building_name' => 'alpha|required_unless:building_number,value',
'building_number' => 'numeric|required_unless:building_name,value',
'street' => 'required|alpha_spaces',
'town' => 'nullable|alpha',
'city' => 'nullable|alpha',
'postcode' => 'required|max:8',
'telephone' => 'required|telephone',
'ical' => 'nullable|active_url',
];
}
view:
<div class="hidden multi form-group{{ $errors->has('building_name') ? ' has-error' : '' }}">
<div class="building_name_message form-control alert-warning" style="display: none;"></div>
<label id="building_name_label" for="building_name" >Building Name</label>
<input id="building_name" type="text" class="form-field form-control" placeholder="Building name (If applicable)" name="building_name" value="{{ old('building_name') }}">
@if ($errors->has('building_name'))
<span class="help-block">
<strong>{{ $errors->first('building_name') }}</strong>
</span>
@endif
<div class="building_number_message form-control alert-warning" style="display: none;"></div>
<label id="building_number_label" for="building_number" >Building Number</label>
<input id="building_number" type="text" class="form-field form-control" placeholder="Building Number (If applicable)" name="building_number" value="{{ old('building_number') }}">
@if ($errors->has('building_number'))
<span class="help-block">
<strong>{{ $errors->first('building_number') }}</strong>
</span>
@endif
<div class="form-navigation">
<button type="button" class="previous btn btn-info pull-left">< Previous</button>
<button type="button" id="next" class="next btn btn-info pull-right">Next ></button>
</div>
</div>