Verwenden Sie Tp, um Spalten zu löschen

炎欲天舞
Freigeben: 2023-03-14 16:48:01
Original
1771 Leute haben es durchsucht

Ich habe vor einiger Zeit einen Aufsatz über das Löschen von Spalten veröffentlicht. Die damals implementierte Funktion bestand darin, eine Information stapelweise zu löschen.

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 auswählen Dies ist die Implementierung der Frontend-Seite. Ich werde hier nicht näher auf das Thema 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('未选中任何内容,请重试!');
        }
    }
Nach dem Login kopieren

Dies ist das Ergebnis unserer ausgegebenen Optionen. Dies ist auch die Grundlage für die Beurteilung, ob es sich bei der Löschung um eine einzelne Löschung oder eine Stapellöschung handelt. Wenn Optionen[wobei][id] ein Array ist, bedeutet dies, dass dies der Fall ist Es handelt sich um eine Stapellöschung, andernfalls handelt es sich um eine Einzellö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)");
        }
    }
Nach dem Login kopieren

Konvertieren Sie den übergebenen String in eine Array-Form ohne Kommas. Speichern Sie ihn in $arr , erstellen Sie ein leeres Array $sonpri und durchlaufen Sie es dann mit foreach. Suchen Sie hier zunächst alle Unterspalten-IDs (die Funktion childid wird verwendet), speichern Sie sie im Array $sonpri2 und führen Sie dann $sonpri und $sonpri2 zusammen Verwenden Sie zum Vervollständigen die Funktion array_merge (), damit wir die IDs aller Unterspalten erhalten können. Die erhaltene ID-Gruppe enthält jedoch viele doppelte IDs. Daher müssen wir auch hier einen Duplizierungsvorgang durchführen , mit der Funktion array_unique( ). Zum Schluss teilen Sie das Array erneut auf, um die ID-Zeichenfolge zu erhalten, löschen Sie sie dann und fertig.

Das obige ist der detaillierte Inhalt vonVerwenden Sie Tp, um Spalten zu löschen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!