エス技研

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にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説

CakePHP3でOGPを設定する方法を解説。fetch、assignを使用しレイアウトファイルに編集した変数にテンプレートファイルから値を指定する。これを利用してOGPを編集する。

CakePHP3でテーブルにカラムを追加したときに変更するポイントのまとめ
CakePHP3でテーブルにカラム(項目)を追加したときに変更するポイントのまとめ

CakePHP3でシステム開発をする際、途中でカラムを追加した場合に何を変更すればいいかを確認。カラムを追加する前後で Bakeした結果を比較し、変更になった点をリストアップした。

CakePHP 2.3 Search Pluginで検索処理 その5入力項目に複数項目入力した場合の AND検索、OR検索

CakePHPの検索プラグイン Search Pluginの検索処理の中で複数項目を入力した場合の AND検索、OR検索についての解説です。

CakePHP4のクリエビルダーを使用してOR条件をAND条件でつなぐSQL文を作る方法
CakePHP4のクリエビルダーを使用してOR条件をAND条件でつなぐSQL文を作る方法

CakePHP4のクリエビルダーを使って複数のOR条件をANDでつなぐSQL文を作成する方法を解説。OR条件を記述したwhere句を2つつなげて記述する。

CakePHP4のCakeDC/Usersの Usersへの接続、バリデーションのカスタマイズ方法解説
CakePHP4のCakeDC/Usersの Usersへの接続、バリデーションのカスタマイズ方法解説

CakeDC謹製Usersプラグインの紹介。CakePHP4で使う場合のUsersのカスタマイズとして入力項目のバリデーションの変更を、プラグインのファイルは触らずオーバーライドにより実装する方法を解説する。

CakePHPで favicon.icoやapple-touch-icon-144-precomposed.pngが could not be foundのエラーが出るときの対処方法
CakePHPで favicon.icoやapple-touch-icon-144-precomposed.pngが could not be foundのエラーが出るときの対処方法

CakePHPで「CakeDC/Users」などルーティングを行うプラグインを利用するときに、favicon.icoやapple-touch-icon-144-precomposed.pngがNotFoundエラーになることがある。その対処方法の解説。

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

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

CakePHP4で現在処理しているコントローラー名、アクション名を取得する方法
CakePHP4で現在処理しているコントローラー名、アクション名を取得する方法

CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法を解説。複数の方法があるが、getParam()メソッドを使う方法が汎用性があって便利かも。

CakePHP3のCakeDC/UsersのUserHelperでログアウトやreCAPTCHAをカスタマイズ
CakePHP3のCakeDC/UsersのUserHelperでログアウトやreCAPTCHAをカスタマイズ

CakeDC謹製Usersプラグインの紹介。UserHelperを利用し、ログアウトのリンクや権限があるときのみ表示されるリンク、プロフィールページへのリンク、reCAPTCHAの設置方法などを解説。

CakePHP3のForm Helperの使い方のまとめ

CakePHP3になりフォームヘルパーの使い方も大きく変わりましたので、使い方をまとめました。基本的な使い方からプラスアルファの便利な使い方まで紹介。