本日、「検索」機能を使用する際、クエリ条件を入力してもクエリが実行できないという問題が発生しました。
私がやっていることは、データテーブルパッケージのコンテンツをホームページに表示することですが、ホームページに表示されるコンテンツはフィールドステータス=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():
を書きます:
protected function _search(){
$map = array ();
$post_data = I ( 'post.' );
if ($post_data ['packageid'] != '') {
$map ['packageid'] = array (
'like',
' %' . $post_data ['packageid'] . '%'
);
}
return $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();
}
シェアしたいと思いますそれはあなたと一緒です。