エス技研

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


CakePHP5系でDeprecatedを回避しfindListでキーと値のカラムを指定して取得する方法

      2025/01/31

Deprecated (16384) : Since 5.0.0: Calling findList finder with options array is deprecated. Use named arguments instead.を回避する方法

 
findListを利用して、キーと値のカラムを指定して配列を取得する方法ですが、CakePHP4系の記述方法が CakePHP5系では非推奨となっています。
そのため「Deprecated(非推奨)」が表示されます。
 
その対処方法を解説します。
 
 

CakePHP5で「Deprecated(非推奨)」を回避して findListで値を取得する方法

 

CakePHP4で findListを使用して値を取得する方法

 
CakePHP4系で findListを利用して、キーと値のカラムを指定して配列を取得する方法は、下記となります。
 

 
 
これをこのまま CakePHP5系にコピペして使用すると、下記の「Deprecated(非推奨)」メッセージが表示されます。
 
Deprecated (16384) : Since 5.0.0: Calling findList finder with options array is deprecated. Use named arguments instead. C:\xampp\htdocs\vendor\cakephp\cakephp\src\ORM\Table.php, line: 2649 You can disable all deprecation warnings by setting Error.errorLevel to E_ALL & ~E_USER_DEPRECATED. Adding vendor/cakephp/cakephp/src/ORM/Table.php to Error.ignoredDeprecationPaths in your config/app.php config will mute deprecations from that file only. [in C:\xampp\htdocs\vendor\cakephp\cakephp\src\Core\functions.php, line 384]
 
 

CakePHP5で推奨されている findListで値を取得する方法

 
上記の「Deprecated(非推奨)」を回避し、CakePHP5系で推奨される記述方法に変えたものが下記になります。
 

 
 
CakePHP5 ChiffonBook 5.0 移行ガイド 非推奨 ORM
https://book.cakephp.org/5/ja/appendices/5-0-migration-guide.html#id7
 
上記に「Table::find() のオプションを配列で指定することは非推奨となりました。(Calling Table::find() with options array is deprecated. Use named arguments instead.)」と書いてありまして、これが上記の「Deprecated(非推奨)」の要因となっています。
そのため、推奨される記述方法に変更する必要があるようです。
 
 
ちなみに、下記の記述方法では「Deprecated(非推奨)」は出なくなりますが、「valueField」で指定したカラムとは異なるカラムの値が取得されることもあるようで、正しい処理ではないようです。
 

 
 

orderAsc、order、groupも非推奨になっている

 
CakePHP5 ChiffonBook 5.0 移行ガイド 非推奨 Database
https://book.cakephp.org/5/ja/appendices/5-0-migration-guide.html#id6
 
また、CakePHP4のコードでは「orderAsc()」を使用していますが、これも非推奨のようです。
order(["id"=>"ASC"])」や「group()」も非推奨のようです。
 
それぞれ下記のように書き替える必要があります。
 
orderAsc()」は「orderByAsc()」に。
orderDesc()」は「orderByDesc()」に。
order()」は「orderBy()」に。
group()」は「groupBy()」に。
 
ちなみに、この「非推奨」は、使用していても「Deprecated(非推奨)」のメッセージは出ないようです。
 
 

CakePHP5の関連記事

CakePHP4系、5系でカラムを指定して値があるかないかのチェックする
CakePHP4、5のnewEmptyEntityで作成したオブジェクトは空なのか、確認してみた
CakePHP4、5でSELECT telephone as tel FROM usersの様にasでカラムに別名を付ける方法
CakePHP4、5の認証処理で認証が通らない際の確認方法と確認箇所の紹介
CakePHP5系で認証機能のAuthenticationプラグインをインストール・エラー発生注意
CakePHP5でヘルパーから他のヘルパーを読み込む方法・CakePHP4からの変更点
CakePHP5系でDeprecatedを回避しfindListでキーと値のカラムを指定して取得する方法
 
その他の「CakePHP5」に関する記事一覧
 
 

 - CakePHP 3.x 4.x 5.x

GoogleAdwords

GoogleAdwords

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

Message

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

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

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

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

  関連記事

CakePHP 2.x系 Viewでのコメントの記述方法など

CakePHPにおいて View、ctpファイルでコメントを記述する方法を解説。

CakePHP3で他のテーブルのマスタテーブルからセレクトボックス(プルダウンリスト)を作る
CakePHP3で他のテーブルのマスタテーブルからセレクトボックス(プルダウンリスト)を作る

他のテーブルのマスタのレコードからプルダウンリストを作成し、選択できるようにするサンプルプログラムと解説。ORMの設定によりデータベースの値を取得し、配列を作成し optionsに与える。

CakePHP3のCakeDC/Usersのログイン後のリダイレクトを設定解説
CakePHP3のCakeDC/Usersのログイン後のリダイレクトとユーザ権限管理の設定解説

CakeDC謹製Usersプラグインの紹介。ログイン認証後にリダイレクトする先の設定方法についての解説と実運用するために必要なコツを解説。便利な仕組みも仕様の理解があって初めてうまく使いこなせる。

CakePHP3のキャッシュをクリアする方法「bin/cake cache clear_all」を使う
CakePHP3、CakePHP4のキャッシュをクリアする方法「bin/cake cache clear_all」を使う

CakePHP3、CakePHP4では処理を高速化する手法の一つとしてキャッシュを利用している。しかし、その情報は元の情報を更新しても反映されない場合がある。そんなときはキャッシュを削除する必要がある。

CakePHP 2.3 コマンドラインからPHPのシェル実行の方法解説

CakePHP 2.3でコマンドラインから CakePHPで記述した処理を実行する方法を解説します。

CakePHP3で /Layout/defult.ctpにある titleタグ、h1タグを編集する方法
CakePHP3で /Layout/defult.ctpにある titleタグ、h1タグを編集する方法

CakePHP3でtitleタグ、h1タグのテキストをデフォルトから変更する方法を解説。テンプレートファイルに「$this->assign()」でテキストを指定して「/Layout/defult.ctp」で受け取る。

CakePHP3でassociatedを使って関連データをまとめて保存する方法(hasOne、hasMany、belongsTo)

CakePHP3で関連データをまとめて保存する方法。hasOne、hasMany、belongsTo等の関連データはassociatedを追加することでまとめて保存することができます。

CakePHP4でロギングスコープやログレベルを使用してログを出し分ける方法を解説
CakePHP4でロギングスコープやログレベルを使用してログを出し分ける方法を解説

CakePHPのログ出力方法の解説。app.phpにログ設定をし、スコープやレベルを指定してログ出力を振り分ける方法、CakePHP4で配列出力にはvar_exportが必要なことなどを解説。

CakePHP 2.3 bakeの超初心者向けフォロー講座

CakePHP 2.3 bakeの超初心者向けフォロー講座

CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説

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