ThinkPH는 열 일괄 삭제를 위한 코드 공유를 구현합니다.

小云云
풀어 주다: 2023-03-20 09:42:02
원래의
1542명이 탐색했습니다.

이 기사에서는 참고용으로 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 배열을 1, 2, 3과 같은 쉼표로 구분된 문자열로 변환하여 삭제 작업을 직접 수행할 수 있도록 해야 합니다. .

이것은 삭제가 단일 삭제인지 일괄 삭제인지 판단하는 기준이기도 합니다. 수행되는 작업은 일괄 삭제이고, 그렇지 않으면 개별적으로 삭제됩니다.

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가 많이 있습니다. 따라서 여기서도 중복 제거 작업을 수행해야 합니다. array_unique() 함수를 사용하세요. 마지막으로 배열을 다시 분할하여 ID 문자열을 얻은 다음 삭제하면 완료됩니다.

관련 권장 사항:

Tp를 사용하여 열 삭제

위 내용은 ThinkPH는 열 일괄 삭제를 위한 코드 공유를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!