При загрузке файла Laravel требуется подтверждение проверки, даже если файл присутствует

У меня есть форма, одно поле для файла с именем attachment В моем запросе проверка для этого поля требует, чтобы он присутствовал, когда другое поле с именем requestType установлено на значение sick , используя правило requestType validation.

Проблема, с которой я столкнулся, заключается в том, что даже когда я загружаю файл для соответствующего поля ввода, правило проверки правильности из класса запроса по-прежнему запускается: The attachment field is required when request type is sick.

Вот мой код:

Обратите внимание, что атрибут html в поле attachment не является тем, что вызывает проблему, при загрузке страницы он disabled а когда requestType настроен на боль, disabled атрибут удаляется.

Посмотреть

 {!! Form::open(['route' => 'employee.request.store', 'class' => 'form-horizontal', 'id' => '', 'files' => 'true']) !!} <div class="form-group {{ $errors->first('requestType', 'has-error') }}"> <label for="" class="col-sm-2 control-label"> {{ Lang::get('employee_request_contractor_create.request_type') }} *</label> <div class="col-sm-3"> {!! Form::select('requestType', ['' => 'Select', 'normal' => 'Normal', 'emergency' => 'Emergency', 'sick' => 'Sick'], '', ['class' => 'form-control', 'id' => 'requestType', 'required' => 'required'] ) !!} </div> {!! $errors->first('requestType', '<label class="col-sm-3 control-label" for="">:message</label>') !!} </div> <div class="form-group {{ $errors->first('attachment', 'has-error') }}" id="attachmentFormGroup"> <label for="" class="col-sm-2 control-label"> {{ Lang::get('employee_request_contractor_create.attachment') }} <small>(Sick only)</small> </label> <div class="col-sm-3"> <input type="file" name="attachment" id="attachment" required="required"> <label>(Please provide HR with original copy)</label> </div> {!! $errors->first('attachment', '<label class="col-sm-3 control-label" for="">:message</label>') !!} </div> <!-- other form inputs and submit button --> {!! Form::close() !!} 

Запрос

 public function rules() { return [ 'requestType' => 'required|max:255', 'attachment' => 'required_if:requestType,sick|mimes:pdf,jpg,png,gif,jpeg|max:512', /* other rules */ ]; } 

Если я удалю required_if:requestType добавление вложений будет прекрасным, и если я required_if:requestType на моем контроллере:

 if(\Input::hasFile('attachment') echo 'true'; 

Я увижу правду.

Когда я dd ($ request) в моем методе хранения контроллера, я вижу следующие (соответствующие части):

 +request: ParameterBag {#227 ▼ #parameters: array:10 [▼ "_token" => "XkQwP608M5WQ4qtHCYN0dIVETDeqzL0E5ZI99iSf" "requestType" => "sick" "manager" => "2" "dateFrom" => "01-06-2015" "dateFromHijri" => "1436-08-14" "dateTo" => "02-06-2015" "dateToHijri" => "1436-08-15" "noOfDays" => "2" "location" => "London" "contactNumber" => "123456" ] } 

а также…

 +files: FileBag {#221 ▼ #parameters: array:1 [▼ "attachment" => UploadedFile {#27 ▼ -test: false -originalName: "test_doc.pdf" -mimeType: "application/pdf" -size: 82584 -error: 0 } ] } 

Это правило запускается, потому что вложение не отображается вместе с другими атрибутами запроса?

Обновление: Сообщения об ошибках:

 ["errors"]=> object(Illuminate\Support\ViewErrorBag)#178 (1) { ["bags":protected]=> array(1) { ["default"]=> object(Illuminate\Support\MessageBag)#179 (2) { ["messages":protected]=> array(1) { ["attachment"]=> array(1) { [0]=> string(59) "The attachment field is required when request type is sick." } } ["format":protected]=> string(8) ":message" } } } по ["errors"]=> object(Illuminate\Support\ViewErrorBag)#178 (1) { ["bags":protected]=> array(1) { ["default"]=> object(Illuminate\Support\MessageBag)#179 (2) { ["messages":protected]=> array(1) { ["attachment"]=> array(1) { [0]=> string(59) "The attachment field is required when request type is sick." } } ["format":protected]=> string(8) ":message" } } } 

Любая помощь приветствуется. Благодаря!