エス技研

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のユーザ認証でID、PASS以外の削除フラグなども条件加える方法
CakePHP4、CakePHP5系の認証処理でログインの有無の確認、ユーザ情報の取得の方法
CakePHP4、5で$_SERVERと同じようにURIを取得する「getUri()」の紹介
getParam('action')で取得するアクション名は別関数に移動しても不変
CakePHP4系、CakePHP5系のexists()でカラムを指定して値の有無をチェックする方法解説
CakePHP4、5のnewEmptyEntityで作成したオブジェクトは空なのか、確認してみた
CakePHP4、5でSELECT telephone as tel FROM usersの様にasでカラムに別名を付ける方法
CakePHP4、5の認証処理で認証が通らない際の確認方法と確認箇所の紹介
CakePHP5系で認証機能のAuthenticationプラグインをインストール・エラー発生注意
CakePHP5でヘルパーから他のヘルパーを読み込む方法・CakePHP4からの変更点
 
その他の「CakePHP5」に関する記事一覧
 
 

 - CakePHP 3.x 4.x 5.x

GoogleAdwords

GoogleAdwords

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

Message

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

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

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

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

  関連記事

CakePHP3のfriendsofcake/searchでブックマークチュートリアルのタグ検索を実装
CakePHP3のfriendsofcake/searchでブックマークチュートリアルのタグ検索を実装

CakePHP3のCookbookにあるブックマークチュートリアル。ここで紹介されているタグで検索する処理を検索プラグイン「friendsofcake/search」で実現する方法を解説しました。

CakePHP3にWYSIWYGエディタのCKEditor4を設置、カスタマイズ方法を解説
CakePHP3にWYSIWYGエディタのCKEditor4を設置、カスタマイズ方法を解説

WYSIWYGエディタであるCKEditor4をCDNを利用して簡単にCakePHP3に導入する方法とカスタマイズする方法を解説。CakePHP3にはページごとの振り分けを行うブロック化を利用する。

VirtualBoxにCakePHP3を設置。必要なCentOS、Apache、PHP、MySQL、Composerをインストールし設定する。
VirtualBoxにCakePHP3を設置。必要なCentOS、Apache、PHP、MySQL、Composerをインストールし設定する

VirtualBoxにCentOS、Apache、MySQL、PHPをインストールするところから初めてCakePHP3の開発環境を構築する手順を詳細解説。この記事1つで全ての設定が完了する。

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

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

CakePHP3でDocumentRootやtmp、webroot、logsなどのフォルダへのパスの定数
CakePHP3でDocumentRootやtmp、webroot、logsなどのフォルダへのパスの定数

CakePHP3で特定フォルダのパスの定数を解説。root、DocumentRoot、app、config、webroot、tests、tmp、cache、vendor、コア、コアの srcが設定済み。realpath()関数を使うと柔軟なパス指定が可能。

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

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

CakePHP 2.3 ID以外のカラムでアソシエーション(連携)をさせる場合の詳細ページの注意点

ID以外のカラムでアソシエーション(連携)させて詳細ページを表示させる際の考え方と注意点をサンプルソースを用いて解説しています。

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

CakePHPの検索プラグイン Search Pluginの検索処理の中で前方一致検索、後方一致検索、不等号による検索、between句による範囲検索の解説です。

CakePHP 2.3 Search Pluginで検索処理 その3入力エリア一つで複数の項目を同時に検索する方法

CakePHPの検索プラグイン Search Pluginの検索処理の中で入力エリア一つで複数の項目を同時に検索する方法を解説。

CakePHP4のユーザ管理・ログイン認証プラグインCakeDC/Usersのインストール解説
CakePHP4のユーザ管理・ログイン認証プラグインCakeDC/Usersのインストール解説

CakePHP4のユーザ管理プラグイン Usersは、ユーザ登録、メール認証、ログイン認証、ユーザ管理、権限管理、reCAPTCHAなど会員制のサイトを簡単に実現可能。その導入方法、カスタマイズ方法を解説。