ホームページ  >  記事  >  バックエンド開発  >  Tp を使用して列を削除します

Tp を使用して列を削除します

炎欲天舞
炎欲天舞オリジナル
2017-08-04 17:25:381792ブラウズ

少し前に、列の削除に関するエッセイを公開しました。そのときに実装された機能は、情報を一括で削除することでした。

達成する必要があるのは次のような効果です:

バッチ削除ボタンを選択した後、これはフロントエンド ページの実装です。ここでは詳細には触れませんが、本題の一括削除機能に進みましょう。

1. フロントエンド ページにも小さなポイントがあります。つまり、選択ボックスの名前の値には ID の配列を割り当てる必要があり、値の値は列の ID です。

2. コントローラーに別個のバッチ削除メソッドを記述します


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('未选中任何内容,请重试!');
        }
    }

これは、削除が単一の削除であるか、単一の削除であるかを決定するためにも使用されます。 options[where][id] が配列の場合は一括削除が実行され、それ以外の場合は単一削除が行われます。

3. モデル内の削除前にコンストラクターを変更します


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)");
        }
    }

渡された文字列をカンマなしの配列に変換し、$arr に格納し、空の配列 $sonpri を作成し、それを foreach で走査します。まず、すべてのサブ列 ID を (childid 関数を使用して) 見つけて、$sonpri2 配列に格納します。次に、$sonpri と $sonpri2 を配列にマージし、array_merge() 関数を使用して完成させます。列 ID はすべてのサブ列 ID を取得できますが、取得した ID グループには重複する ID が多数あるため、ここでも array_unique() 関数を使用して複製操作を実行する必要があります。最後に、配列を再度分割して ID 文字列を取得し、それを削除すれば完了です。

以上がTp を使用して列を削除しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。