Heim  >  Artikel  >  Backend-Entwicklung  >  ThinkPH implementiert Code-Sharing zum Stapellöschen von Spalten

ThinkPH implementiert Code-Sharing zum Stapellöschen von Spalten

小云云
小云云Original
2018-02-12 10:39:511508Durchsuche

In diesem Artikel erfahren Sie hauptsächlich, wie Sie das Stapellöschen von Spalten in ThinkPHP als Referenz implementieren. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.

Was wir erreichen müssen, ist der folgende Effekt:

Nachdem Sie die Schaltfläche „Batch löschen“ ausgewählt haben, können Sie alle Spalten der Seite auswählen Zur Implementierung der Frontend-Seite gibt es hier nicht viel zu sagen, kommen wir direkt zum Thema: der Batch-Löschfunktion.

1. Hier auf der Front-End-Seite gibt es auch einen kleinen Punkt: Dem Namenswert des Auswahlfelds sollte ein ID-Array zugewiesen werden, und der Wertwert ist die ID der Spalte .

2. Wir schreiben eine separate Batch-Löschmethode in den Controller

public function privilege_bdel(){
  $ids = I('ids');
  $pri = D('privilege');
  $ids = implode(',', $ids);
  if($ids){
   if($pri->delete($ids)){
    $this->success('批量删除栏目成功!',U('Privilege/privilege_lst'));
   }else{
    $this->error('批量删除栏目失败,请重试!');
   }
  }else{
   $this->error('未选中任何内容,请重试!');
  }
 }

Hier müssen wir das übergebene ID-Array in eine durch Kommas getrennte Zeichenfolge konvertieren, wie zum Beispiel: 1,2,3 . Auf diese Weise kann der Löschvorgang direkt durchgeführt werden.

Dies ist das Ergebnis unserer Dump-Optionen. Dies ist auch die Grundlage für die Beurteilung, ob es sich bei der Löschung um eine Einzellöschung oder eine Stapellöschung handelt. [id] Wenn es sich um ein Array handelt, bedeutet dies, dass eine Stapellöschung durchgeführt wird, andernfalls handelt es sich um eine einzelne Löschung.

3. Änderung des Konstruktors vor dem Löschen im Modell

public function _before_delete($options){
  //批量删除
  if(is_array($options['where']['id'])){
   $arr = explode(',', $options['where']['id'][1]);
   $sonpri = array();
   foreach ($arr as $k => $v) {
    $sonpri2 = $this->childid($v);
    $sonpri = array_merge($sonpri,$sonpri2);
   }
   $sonpri = array_unique($sonpri);
   $chilrenids = implode(',', $sonpri);
  }else{//单个删除
   $chilrenids =$this->childid($options['where']['id']);
   $chilrenids = implode(',', $chilrenids);
  }
  if($chilrenids){
   $this->execute("delete from ed_privilege where id in($chilrenids)");
  }
 }

Hier schreiben wir den Code für die Stapellöschung (Einzellöschung wurde bereits geschrieben und wird nicht noch einmal erwähnt)

Konvertieren Sie die übergebene Zeichenfolge in ein Array ohne Kommas und speichern Sie sie in $arr. Erstellen Sie ein leeres Array $sonpri und durchlaufen Sie es dann mit foreach. Hier ermitteln Sie zunächst alle Unterspalten-IDs (die Funktion „childid“) verwendet werden), speichern Sie es im Array $sonpri2, führen Sie dann $sonpri und $sonpri2 zu einem Array zusammen und verwenden Sie die Funktion array_merge(), um es zu vervollständigen. Auf diese Weise können wir die IDs aller Unterspalten erhalten, aber In der von uns erhaltenen ID-Gruppe wird es viele doppelte IDs geben, daher müssen wir auch hier eine Duplizierungsoperation mit der Funktion array_unique() durchführen. Zum Schluss teilen Sie das Array erneut auf, um die ID-Zeichenfolge zu erhalten, löschen Sie sie dann und fertig.

Verwandte Empfehlungen:

Verwenden Sie Tp, um Spalten zu löschen

Das obige ist der detaillierte Inhalt vonThinkPH implementiert Code-Sharing zum Stapellöschen von Spalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn