ホームページ  >  記事  >  バックエンド開発  >  ThinkPH は列の一括削除のためのコード共有を実装します。

ThinkPH は列の一括削除のためのコード共有を実装します。

小云云
小云云オリジナル
2018-02-12 10:39:511559ブラウズ

この記事では主に、ThinkPHP での列の一括削除の実装を参考のために共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。

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

バッチ削除ボタンを選択した後、ページのすべての列を選択できます。これはフロントエンドページの実装です。ここでは、バッチ削除機能のトピックに直接進みましょう。

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

ここでは、削除操作を直接実行できるように、渡された ID 配列をコンマ区切りの文字列に変換する必要があります。 。

これは、オプションのダンプの結果であり、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)");
  }
 }

ここで一括削除のコードを書きます(単一の削除については以前に書いたので再度言及しません)

渡された文字列をカンマの配列形式に変換します空の配列 $sonpri を作成し、それを foreach で走査します。ここでは、まずすべてのサブ列 ID を見つけて (childid 関数が使用されます)、それらを $sonpri2 配列に保存します。 $sonpri と $sonpri2 を配列にマージし、array_merge() 関数を使用すると、すべてのサブカラムの ID を取得できます。ただし、取得した ID グループには重複する ID が多数存在します。ここで重複排除操作を実行する必要がある場合は、array_unique() 関数を使用します。最後に、配列を再度分割して ID 文字列を取得し、それを削除すれば完了です。

関連する推奨事項:

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

以上がThinkPH は列の一括削除のためのコード共有を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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