DEVELOPERS BLOGデベロッパーズブログ

  1. HOME > 
  2. 加藤 正人のデベロッパーズブログ > 
  3. CakePHP3 のユーザー定義ファインダーのオプション

加藤 正人のデベロッパーズブログ

加藤 正人

氏名
加藤 正人
役職
多分SE
血液型
秘密
出没
美味しいもののあるところ
特色
タヒチ大好き。ちょいメタボ。

加藤 正人

2020/08/03

CakePHP3 のユーザー定義ファインダーのオプション

 

よく使う絞り込み条件でのテーブル検索は CakePHP3 の Table のファインダーメソッドを追加してで対応することが多い。

このファインダーメソッドでは、追加データを $options 変数に連想配列として渡すことができることになっている。(§ Custom Finder Methods)

この機能を利用して絞り込み結果の最大取得数を 'limit' というキーで渡すようにしたのだが、

1$result = $my_table->find('my_finder', ['limit' => 5]);

としてみたところ自作のファインダー my_finder に制御が移った時点で $options は空リストで何も渡されていなかった。

よくよく考えてみれば自作ファインダーの呼び出しは Table クラスの find() メソッドを通じて行なっている。find() メソッド自体にはオプションが指定できるのだが、find() が予約しているオプションと一致するもの (私の場合は 'limit') は自作ファインダーの $options 引数に渡されないようだ。

※ただし、親である find() の処理でも利用されないため結果として全く個数制限が効いていない形で SQL が実行される。

関連タグ: CakePHP3  Table  CustomFinder 

関連エントリー

CakePHP3 のリダイレクトがうまく行かない例

PhpSpreadsheet でExcel ファイルを読み込む (CakePHP3)

PHP3 でデバグモードを一旦無効化した後再度有効化するとDebugKit が見つからない

CakePHP3 で JSON 応答のための定番処理

CakePHP3 でタイムゾーン変換