エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


CakePHP 2.3 Search Pluginで検索処理 その4前方一致検索、後方一致検索、不等号による検索、between句による範囲検索

      2014/06/26

Search Pluginで検索処理 設置方法 その4

 

Search Pluginで部分一致検索の参考サイト

 
今回は、前方一致検索、後方一致検索、不等号による検索を行います。
今回の処理は、「CakePHP 2.3 Search Pluginで検索処理 その2表示件数を動的に変える方法」をベースにしていますので、そちらもご覧ください。
 
順番的にはもっと最初の方で提示するべき項目だと思いますが、これまでは「value」による完全一致検索、「like」による部分一致検索で処理を作ってきました。
 
ですが、この辺で改めて、完全一致検索、部分一致検索以外の検索の方法を書いておきます。
 
とはいえ、これについては、特に難しいものではありませんので、下記のサイトなどを見ていただくと分かるんじゃないかと思います。
http://mawatari.jp/archives/introduction-of-cakedc-search-plugin-for-cakephp
 
 

Search Pluginで 前方一致検索のサンプルコード

 
前方一致検索
「ユーザ名」の項目を前方一致検索する場合は、下記の通り「’before’ => false, ‘after’ => true,」を追加します。Model以外の修正はありません。
————–(/app/Model/User.php)

————–
 

Search Pluginで 後方一致検索のサンプルコード

 
後方一致検索
「ユーザ名」の項目を後方一致検索の場合は、下記の通り「’before’ => true, ‘after’ => false,」を追加します。Model以外の修正はありません。
————–(/app/Model/User.php)

————–
 

Search Pluginで 不等号による検索のサンプルコード

 
不等号による検索
「ユーザID」の項目を不等号によって検索をする場合は、下記の通り「id」を Modelと Viewのページにそれぞれ「id_from」「id_to」の項目変更しています。
不等号は「field」の項目の後ろに「>=」「<=」を記述します。   まぁ、今回は、すでにある項目を流用するため IDを不等号検索に使いましたが、実実装に関しては IDを from、toで検索することはないでしょうね。   --------------(/app/Model/User.php)

--------------   --------------(/app/View/Elements/searchForm.ctp)

--------------    

Search Pluginで betweenによる範囲検索のサンプルコード

 
続けて、between句による範囲指定の方法です。
 
不等号による範囲指定での検索は、betweenによる範囲検索より検索スピードが劣るとされています。
そのため、betweenによる範囲指定も探してみましたが、うまく実装することができませんでした...
 
現時点では、「/app/View/Elements/searchForm.ctp」は同じものを使います。
そして、Modelは、以下のように設定します。
 
————–(/app/Model/User.php)

————–
 
「’type’ => ‘expression’」を設定し、「method」で配列を渡す関数を通すことで、自動的に「between句」を生成してくれます。
この方法でも、「id_from」に値が入力されれば正しく betweenで検索されます。
 
ですが、「id_from」の値が入っていない場合(「id_to」のみの入力の場合)は、入力がないものとして処理されません。
 
 
「id_to」のみの入力の場合も検索の処理をさせる方法については、分かりませんでした!!!
分かる方、どなたか教えてくださいっ!!
 
 
 
【CakePHP 2.3 Search Plugin検索処理 目次】
CakePHP 2.3 Search Pluginで検索処理 その1設置方法
CakePHP 2.3 Search Pluginで検索処理 その2表示件数を動的に変える方法
CakePHP 2.3 Search Pluginで検索処理 その3入力エリア一つで複数の項目を同時に検索する方法
CakePHP 2.3 Search Pluginで検索処理 その4前方一致検索、後方一致検索、不等号による検索、between句による範囲検索
CakePHP 2.3 Search Pluginで検索処理 その5入力項目に複数項目入力した場合の AND検索、OR検索
CakePHP 2.3 Search Pluginで検索処理 その6ORDER、sortソートの機能
CakePHP 2.3 Search Pluginで検索処理 その7queryを使って 日付の範囲検索

 - CakePHP 3.x 4.x 5.x

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

cakephp3 カスタムバリデーションを簡易的に実装する方法
cakephp3 カスタムバリデーションを簡易的に実装する方法

CakePHP3の独自のバリデーションをテーブルクラス内に簡単に記述する方法を解説。他のテーブルクラスでは使えないが、記述する量は少なく実装できるため、他で使わない処理を書くのには便利。

CakePHP3ログファイルの出力方法・$this->log()の解説
CakePHP3ログファイルへの出力・$this->log()、独自ログへの出力方法の解説

コントロール、モデルの変数の中身を見るときはログに出力する方法が有効です。$this->log()を利用すると変数だけじゃなく、連想配列、オブジェクトも簡単にログ出力ができます。

CakePHP4系でJSONレスポンスの処理ではwithStringBodyを使う。3との違い解説
CakePHP4系でJSONレスポンスの処理ではwithStringBodyを使う。3との違い解説

responseの値を指定する方法は3系では「body」だが、4系では「withStringBody」になりる。加えてJSON形式なら「withType」で指定するなど4系では結構異なる処理がある。

CakePHP3のCakeDC/Usersの画面、メール本文テンプレートのカスタマイズ方法解説
CakePHP3のCakeDC/Usersの画面、メール本文テンプレートのカスタマイズ方法解説

CakeDC謹製Usersプラグインの紹介。ユーザ新規登録の流れを紹介しつつテンプレートファイルがどこにあるか、設定情報ファイルがどこにあるか、を説明しつつカスタマイズの方法を解説します。

Windows上のXAMPP環境のCakePHPのコマンド実行時に環境変数を指定する方法
Windows上のXAMPP環境のCakePHPのコマンド実行時に環境変数を指定する方法

CakePHP4のコマンド(シェル)に対して、環境変数を指定して実行する方法を解説。LinuxとWindows上のXAMPPとでは記述方法が異なるため、Windowsのsetコマンドについても詳細解説。

CakePHP3のメッセージ日本語化の設定(国際化と地域化の機能の使い方の解説)
CakePHP3のメッセージ日本語化の設定(国際化と地域化の機能の使い方の解説)

CakePHP3の英語のメッセージを日本語化(多言語化)する手順を解説。オリジナルのメッセージを作成する方法やプログラムで文言を追加する場合の対応なども解説。

CakePHP3のバージョンを指定してインストールする詳細な手順を解説
CakePHP3、CakePHP4、CakePHP5のバージョンを指定してインストールする詳細な手順を解説

CakePHP3のバージョンを指定してインストールする方法を詳細解説。CakePHP3のインストールはComposerを使うため設定もほぼ自動で完了。データベースの接続情報を記載すればアプリ開発のベースが整う。

CakePHP4、5でSELECT telephone as tel FROM usersの様にasでカラムに別名を付ける方法
CakePHP4、5でSELECT telephone as tel FROM usersの様にasでカラムに別名を付ける方法

CakePHP4、CakePHP5でクリエビルダーを利用してテーブルからレコードを取得する際、asを使用してカラムの別名で値を取得したい場合の対応方法を解説。また、別名にはハイフンやアスタリスクなど使用できない文字がある点も解説。

CakePHP3でComposerでインストールできないプラグイン、外部ライブラリを vendorに入れて手動で読み込む方法
CakePHP3でComposerでインストールできないプラグイン、外部ライブラリを vendorに入れて手動で読み込む方法

CakePHP3にComposerからインストールできないプラグインやライブラリなどを利用する方法、vendorにファイルを設置し、composer.jsonを更新し、それを呼び出す方法を詳細に解説。

CakePHP3のfriendsofcake/searchでツリーカテゴリーの子階層も含めて検索する方法
CakePHP3のfriendsofcake/searchでツリーカテゴリーの子階層も含めて検索する方法

CakePHP3のツリービヘイビアを使ったツリーカテゴリーの子階層も含めての検索を検索プラグイン「friendsofcake/search」を使って実現する方法を解説しました。