Wenn ich Update "Seite" öffne, habe ich dynamisch Zeilen, die in der DB gespeichert sind. Aber wie ich es schaffe können die Zeilen in actionUpdate löschen löschen sie in der DB.The gelöschte Elemente sind in Reihe mit der ID deletedIDsLöschen verwandter Modelle in yii2
public function actionUpdate($id) {
$model = Component::find()->where(['id' => $id])->one();
$depModels = Dependency::find()->where(['component_id' => $id])->all();
$tractorModels = ArrayHelper::map(Tractormodel::find()->all(), 'id', 'model');
$components = Component::find()->all();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
$dependendComponents = Yii::$app->request->bodyParams['ids'];
foreach ($dependendComponents as $dComp) {
$dependencyModel = new Dependency();
$dependencyModel->setAttributes([
'count' => $dComp['quantity'],
'component_id' => $model->id,
'dependent_id' => $dComp['id']
]);
$dependencyModel->save();
}
return $this->redirect(['index', 'id' => $model->id]);
} else {
return $this->render('update', [
'model' => $model, 'tractorModels' => $tractorModels,
'components' => $components, 'depModels' => $depModels,
]);
}
}
und hier ist meine Entfernen Reihe JQuery in „_form“
wrapper.on("click", ".remove_field", function (e) {
var wantedDiv = $(this).parent('div').children().first();
var selectTag = $(wantedDiv).find('select');
var clickedId = $(selectTag).find('[selected=""]').attr('value');
var deletedIdsArray = $('#deletedIDs');
console.log($('#deletedIDs'));
if (clickedId) {
$('#deletedIds').append('<input type="hidden" name="deletedIds[]" value="' + clickedId + '">');
}
e.preventDefault();
$(this).parent('div').remove();
x--;
});
I Informationen Array (4) { [ "_csrf"] => string (56) "TFM5Tm9hSGM/CXcAIzIhMx0aSBYDEgMuBAFxIw0rDRAtEXEPDSULKw ==" [ "Komponente"] => array (3) { [ "name erhalten "] => string (5) "proba" [" instock "] => string (3) "333" [" tractormodel_id "] => string (1) "2" } [" ids "] => Array (1) { [0] => Feld (2) { [" id "] => string (16)" Komponente auswählen " [ "Menge"] => string (0) "" } } [ "deletedIds"] => array (3) { [0] => Saite (2) "15" [1 =]> string (2) "13" [2] => string (2) "16" } } – RosS
aber es eine Möglichkeit, es in acitonUpdate sein sollte, zu tun, weil es mir diese dynamisch Zeilen löschen, wenn Ich möchte, dass ich gemacht habe, wenn ich eine "Komponente" erstelle. Und wie ich sagte, die gelöschten Objekte habe ich sie in Array, aber brauchen einen Weg, wie Sie sie aus der DB löschen – RosS
dann müssen Sie in Ihrem Code etwas wie das hinzufügen : YourModel :: deleteAll (['id' => Y ii :: $ app-> Anfrage-> post() ["deletedIds"]]); –