Heim  >  Artikel  >  Backend-Entwicklung  >  ThinkPHP-Methode zum Implementieren der Stapellöschung von Spalten

ThinkPHP-Methode zum Implementieren der Stapellöschung von Spalten

墨辰丷
墨辰丷Original
2018-05-21 11:39:191639Durchsuche

In diesem Artikel wird hauptsächlich die Methode zum Stapellöschen von Spalten in ThinkPHP vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

Was wir erreichen müssen, ist dieser Effekt:

Nachdem Sie die Schaltfläche „Batch löschen“ ausgewählt haben, können Sie Kann alle auswählen Die Spalte dieser Seite ist die Implementierung der Frontend-Seite. Ich werde hier nicht auf Details eingehen: Die 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 ist sie Konvertieren Das übergebene ID-Array wird in eine durch Kommas getrennte Zeichenfolge umgewandelt, z. B.: 1, 2, 3, sodass der Löschvorgang direkt ausgeführt werden kann.

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 Batch-Löschung Der Code ( einzelne Löschungen wurden bereits geschrieben und werden 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 Wir finden zunächst alle Unterspalten-IDs (mithilfe der Funktion „childid“) und speichern sie im Array „$sonpri2“. Anschließend führen wir „$sonpri“ und „$sonpri2“ zu einem Array zusammen und verwenden die Funktion „array_merge()“, um es zu vervollständigen. Wir können alle Unterspalten-IDs erhalten, aber es wird viele doppelte IDs in der erhaltenen ID-Gruppe 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:

PHP-ImplementierungBatch-LöschungjQuery-Betriebsmethode

ThinkPH-ImplementierungBatch-LöschungSpaltencode-Freigabe

PHPBatch-LöschungjQuery-Instanzcode

Das obige ist der detaillierte Inhalt vonThinkPHP-Methode zum Implementieren der Stapellöschung 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