In diesem Update Aktionscode speichern Daten und upadte Bild auf Ordner aktualisieren, aber nicht ein andere Tabelle tabl4e Bild, wie mehr Bilder zu aktualisieren, die nur in verschiedener Tabelle einzige Aktion in yii2
public function actionUpdate($id)
{
$model = $this->findModel($id);
if ($model->load(Yii::$app->request->post()) && $model->save()) {
if ($model->validate()) {
$model->save();
$cid = $model->id;
if (isset($_FILES['attr_name']['tmp_name'])) {
$photos = UploadedFile::getInstancesByName('attr_name');
$imgName = array();
if (isset($photos) && count($photos) > 0) {
$DD = 0 ;
foreach ($photos as $image => $pic) {
$imagepath = Yii::getAlias('@image').'/';
$imageFileName = rand(10, 100).$pic->name;
$imageFile = $imagepath.$imageFileName;
if ($pic->saveAs($imageFile)) {
$imgName[] = $imageFileName;
} else {
//echo 'Cannot upload!';
}
$Image = new Image();
$Image->c_id = $cid;
$Image->image = $imageFileName;
$img = $Image->image;
if (isset($_POST['deletedImg'])) {
$pics = $_POST['deletedImg'];
foreach ($pics as $img1) {
$image = $img1;
unlink(Yii::getAlias('@image').'/'.$image);
}
} else {
$Image->image = $img;
}
if ($Image->validate()) {
$Image->save();
} else {
print '<pre>';
print_r($Image->errors);
exit;
}
unset($Image);
}
}
return $this->redirect(['view', 'id' => $model->id]);
}
} else {
return $this->render('create', [
'model' => $model,
]);
}
} else {
return $this->render('update', [
'model' => $model,
]);
}
}
jQuery
AktualisierungIn diesem Code wird mehrere Dateien Schaltfläche und speichern und löschen mehrere Bilder, ich bekomme Image ID löschen, wie diese ID auf Update-Aktion verwenden, habe ich keine Ahnung.
$(".removeBtn").click(function(event){
var img =$(this).attr("data-id");
var id = $(this).attr('id');
var hiddenfield= '<input type="hidden" value="'+img+'" name="deletedImg[]" id=""/>';
$("#deleted-img").append(hiddenfield);
$(this).parent().parent().remove();
});
$(".btnAddRec").click(function(){
var clonedHTML = $("#fieldsRow").html();
clonedHTML = clonedHTML.replace("<!--BUTTON-->",'<button type="button" class="removeBtn btn btn-xs btn-danger"><i class="glyphicon glyphicon-trash"></i> Delete</button>');
$("#cloned").append('<div class="row" id="fieldsRow">'+clonedHTML+'</div>');
$(".removeBtn").click(function(event){
$(this).parent().parent().remove();
});
$("#cloned #fieldsRow:last-child input ").val('');
});
Dank aber dieser Code kann es nicht funktionieren‘ –
In diesem Fall sollten Sie wirklich das Debuggen tiefer in Ihrer Anwendung starten; Stellen Sie sicher, dass die veröffentlichten FORM-Daten tatsächlich dem entsprechen, was Sie erwarten. Der Code-Inspektor des Browsers ist ein guter Anfang, ebenso wie die Ausgabe der Ablaufverfolgung in 'runtime/logs.app.log', wobei Ihre Debug-Ebene auf 'Verbose' oder 'Trace' gesetzt ist. – jlapoutre