My code is
Html
<?php $form = ActiveForm::begin(['action' => ['enrollment/family'],'options' => ['enctype' => 'multipart/form-data']]); ?>
<div class="row">
<div class="col-12">
<h1 class="heading"> Family Member </h1>
</div>
</div>
<div id="dynamic_fieldf">
<?php if(!empty(Yii::$app->request->get('enrolementid')) || !empty(Yii::$app->request->get('papl_id')))
{
?>
<input type="hidden" name="enrolementid" value="<?= Yii::$app->request->get('enrolementid')??Yii::$app->request->get('papl_id')?>">
<?php }else{?>
<input type="hidden" name="enrolementid" value="<?=$enrolmentid?>">
<?php }?>
<?php
foreach($model->families as $family)
{
?>
<div class="row">
<div class="col-2">
<div class="form-group field-family-family_member">
<label class="control-label" for="family-family_member">Family Member</label>
<input type="text" id="family-family_member" class="form-control" name="Family[family_member][]" value="<?=$family->family_member?>" maxlength="255">
<div class="help-block"></div>
</div>
</div>
<div class="col-2">
<div class="form-group field-family-family_member_dob has-success">
<label class="control-label" for="family-family_member_dob">Family Member Dob</label>
<input type="text" class="form-control family-family_member_dob" name="Family[family_member_dob][]" value="<?=$family->family_member_dob?>" aria-invalid="false">
<div class="help-block"></div>
</div>
</div>
<div class="col-2">
<div class="form-group field-family-family_member_relation">
<label class="control-label" for="family-family_member_relation">Family Member Relation</label>
<input type="text" id="family-family_member_relation" class="form-control" name="Family[family_member_relation][]" value="<?=$family->family_member_relation?>" maxlength="255" aria-invalid="false">
<div class="help-block"></div>
</div>
</div>
<div class="col-2">
<div class="form-group field-family-family_member_residence">
<label class="control-label" for="family-family_member_residence">Family Member Residence</label>
<input type="text" id="family-family_member_residence" class="form-control" name="Family[family_member_residence][]" value="<?=$family->family_member_residence?>" maxlength="255">
<div class="help-block"></div>
</div>
</div>
<div class="col-2">
<div class="form-group field-family-family_nominee_adhar_photo">
<?php if ($family->family_nominee_adhar_photo) {?>
<a href="<?= Yii::getAlias('@storageUrl').$family->family_nominee_adhar_photo?>" data-toggle="tooltip" title="File link"><img src="https://img.icons8.com/glyph-neue/34/000000/image.png"/></a>
<?php }?>
<?= $form->field($family_model, 'family_nominee_adhar_photo[]')->fileInput(['multiple' => true,'onchange'=>"readURL(this);",'accept' => '.jpg,.jpeg,.png,.pdf']) ?>
<!-- <label class="control-label" for="family-family_nominee_adhar_photo">Family Nominee Adhar Photo</label>
<input type="hidden" name="Family[family_nominee_adhar_photo][]" value="">
<input type="file" id="family-family_nominee_adhar_photo" name="Family[family_nominee_adhar_photo][]" value="" maxlength="255" onchange="readURL(this);" accept=".jpg,.jpeg,.png,.pdf">
<div class="help-block"></div> -->
</div>
</div>
<div class="col-2 removeParentfamily">
<button type="button" class="close" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
</div>
<?php }?>
<!--sample data start for Family -->
<div class="row" id="sampleFamily" style="content-visibility:<?php if($model->families){
echo 'hidden';}else{echo 'visible';}?>">
<div class="col-2">
<div class="form-group field-family-family_member">
<label class="control-label" for="family-family_member">Family Member</label>
<input type="text" id="family-family_member" class="form-control" name="Family[family_member][]" value="" maxlength="255">
<div class="help-block"></div>
</div>
</div>
<div class="col-2">
<div class="form-group field-family-family_member_dob ">
<label class="control-label" for="family-family_member_dob">Family Member Dob</label>
<input type="text" class="form-control family-family_member_dob" name="Family[family_member_dob][]" aria-invalid="false" readonly="true">
<div class="help-block"></div>
</div>
</div>
<div class="col-2">
<div class="form-group field-family-family_member_relation">
<label class="control-label" for="family-family_member_relation">Family Member Relation</label>
<input type="text" id="family-family_member_relation" class="form-control" name="Family[family_member_relation][]" value="" maxlength="255">
<div class="help-block"></div>
</div>
</div>
<div class="col-2">
<div class="form-group field-family-family_member_residence has-success">
<label class="control-label" for="family-family_member_residence">Family Member Residence</label>
<input type="text" id="family-family_member_residence" class="form-control" name="Family[family_member_residence][]" value="" maxlength="255" aria-invalid="false">
<div class="help-block"></div>
</div>
</div>
<div class="col-2">
<div class="form-group field-family-family_nominee_adhar_photo">
<label class="control-label" for="family-family_nominee_adhar_photo">Family Nominee Aadhaar Photo</label>
<input type="hidden" name="Family[family_nominee_adhar_photo]" value=""><input type="file" id="family-family_nominee_adhar_photo" name="Family[family_nominee_adhar_photo][]" value="" maxlength="255" onchange="readURL(this);" accept=".jpg,.jpeg,.png,.pdf" multiple>
<div class="help-block"></div>
</div>
</div>
<div class="col-2 removeParentfamily">
<button type="button" class="close" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
</div>
<!--sample data end for qualification -->
javascript
$addmorefamily = <<<JS
JS;
$addmorefamily = <<<JS
var template = $(’#dynamic_fieldf #sampleFamily:first’).clone();
var sectionsCount = 1;
$(’.removeParentfamily’).click(function(){
$(this).parent().remove();
})
$(‘body’).on(‘click’, ‘#addf’, function() {
sectionsCount++;
var section = template.clone().find(’:input’).each(function(){
var newId = this.id + sectionsCount;
$(this).prev().attr(‘for’, newId);
}).end().appendTo(’#dynamic_fieldf’);
$("input[name='family_member_dob[]']").last().datepicker();
return false;
});
$(“input[name=‘family_member_dob[]’]”).last().datepicker();
$(’#dynamic_fieldf’).on(‘click’, ‘.removeParentfamily’, function() {
$(this).parent().remove();
});
JS;
$this->registerJs($addmorefamily);
controller code
public function actionFamily()
{
if( !empty(Yii::$app->request->get(‘enrolementid’))){
$enrolmentid=Yii::$app->request->get(‘enrolementid’);
}elseif (!empty(Yii::$app->request->get(‘papl_id’))) {
$enrolmentid=Yii::$app->request->get(‘papl_id’);
}else{
$enrolmentid=Yii::$app->request->post(‘enrolementid’);
}
$tag=’’;
$msg =’’;
$family_model = new Family();
if ($family_model->load($this->request->post())) {
$userData = count($this->request->post()[‘Family’][‘family_member’]);
if ($userData > 0) {
// if (Yii::$app->request->get(‘papl_id’)) {
// Family::deleteAll([‘papl_id’=>$enrolmentid]);
// }else{
Family::deleteAll(['enrolement_id'=>$enrolmentid]);
// }
// $msg ='';
for ($i=0; $i < $userData; $i++) {
if(Yii::$app->request->post()['Family']['family_member'][$i] !='' && isset(Yii::$app->request->post()['Family']['family_member'][$i]) && !empty(Yii::$app->request->post()['Family']['family_member'][$i]))
{
// echo "<pre>";print_r($this->request->post()['Family']);
$family_model = new Family();
$family_member = $this->request->post()['Family']['family_member'][$i];
$family_member_dob = $this->request->post()['Family']['family_member_dob'][$i];
$family_member_relation = $this->request->post()['Family']['family_member_relation'][$i];
$family_member_residence = $this->request->post()['Family']['family_member_residence'][$i];
$family_model->enrolement_id=$enrolmentid;
$family_model->family_member=$family_member;
$family_model->family_member_dob=$family_member_dob;
$family_model->family_member_relation=$family_member_relation;
$family_model->family_member_residence=$family_member_residence;
$family_nominee_adhar_photos = UploadedFile::getInstances($family_model, 'family_nominee_adhar_photo');
// echo "<pre>";print_r($family_nominee_adhar_photos);
if (!empty($family_nominee_adhar_photos[$i]) && isset($family_nominee_adhar_photos[$i])) {
$basepath = Yii::getAlias('@storage');
$randnum = Yii::$app->security->generateRandomString();
$file = '/upload/' . $randnum .'.'. $family_nominee_adhar_photos[$i]->extension;
$path = $basepath . $file;
$family_nominee_adhar_photos[$i]->saveAs($path);
$family_model->family_nominee_adhar_photo=$file;
}
if($family_model->save())
$msg .= "";
else
$msg .= 'error '.json_encode($family_model->getErrors());
}
// die();
}
}
if($msg == ''){
if(Yii::$app->request->post('family'))
$tag='';
// return $this->redirect(['enrole', 'enrolementid' => $enrolmentid,'tag'=>$tag]);
return $this->redirect(['index','type' => 0]);
}else{
$tag='family';
return $this->redirect(['enrole', 'enrolementid' => $enrolmentid,'tag'=>$tag,'msg' => $msg]);
}
}
}