本日、「検索」機能を使用する際、クエリ条件を入力してもクエリが実行できないという問題が発生しました。
私がやっていることは、データテーブルパッケージの内容をホームページに表示することですが、ホームページに表示される内容もフィールドステータス=0でなければならず、印刷=0のデータも表示できますという条件があります。ホームページのリスト。
ページ内に条件を入力すると、その条件に基づいてクエリが実行されます。
一般的な検索の場合は、ホームページ表示リストメソッドのindex()に1つを指定するだけです:
$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():
を書くだけです例:
保護された関数 _search(){
$map = array ();
$post_data = I ( 'post.' );
if ($post_data ['packageid'] != '') {
$map ['packageid'] = array (
'like',
'%' . $post_data ['packageid'] . '%'
) ;
}
$map を返す;
}
最後に、設定の「検索」メニューでこの検索メソッドを呼び出します。
ただし、これを行う場合、検索中に、フィールド status=0 および printing=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();
}
皆さんにもシェアしたいと思います。
初心者は学習中なので、コメントやアドバイスを残してください。