오늘 문제가 발생했습니다. '검색' 기능을 사용할 때 쿼리 조건을 입력한 후 쿼리를 수행할 수 없습니다.
제가 하는 일은 홈페이지에 데이터 테이블 패키지의 내용을 표시하는 것인데, 홈페이지에 표시되는 내용도 필드 상태=0, 인쇄=0인 데이터가 되어야 한다는 조건이 있습니다. 홈페이지 목록에 표시됩니다.
페이지에 '검색' 기능이 있습니다. 조건을 입력하면 해당 조건에 따라 검색이 진행됩니다.
일반 검색의 경우 홈페이지 표시 목록 메서드 index()에 하나를 지정하면 됩니다.
$map=array();//初始化查询条件 $map=$this->_search();//调用查询方法 $total = $this->Model->where ($map)->count(); //这个主要是用来计算页面显示数据条数的 if ($total == 0) { $_list = ''; } else { $_list = $this->Model->where ($map)->limit( $post_data ['first'] . ',' . $post_data ['rows'] )->select(); }
그런 다음 _search():
예:
< 🎜를 작성합니다. >
protected function _search(){ $map = array (); $post_data = I ( 'post.' ); if ($post_data ['packageid'] != '') { $map ['packageid'] = array ( 'like', '%' . $post_data ['packageid'] . '%' ); } return $map; }
그러나 이 작업을 수행할 때 검색하는 동안 필드 상태=0 및 인쇄=0인 데이터에서도 검색해야 합니다.
이 제한사항을 어디에 두어야 할지 고민하고 있습니다. 다양한 시도와 문의 끝에 알게 되었습니다. 아래 빨간색으로 표시된 것처럼 제한 조건을 SQL 문에 직접 추가하면 됩니다. (직접 시도해 보니 아래 파란색 영역에 계속 조건을 추가하다가 매번 실패했습니다!)
$map=array(); $map=$this->_search(); $total = $this->Model->where ($map)->where(array('status' =>0,'print_status'=>0))->count(); if ($total == 0) { $_list = ''; } else { $_list = $this->Model->where ($map)->where(array('status' =>0,'print_status'=>0))->limit( $post_data ['first'] . ',' . $post_data ['rows'] )->select(); }