【CakePHP】find(‘list’)のデフォルト項目

こんちには、フリーのITエンジニアでWeb(PHP:Laravel)のバッグエンドをメインにフルリモートでお仕事させて頂きながら、個人開発でiOSアプリを作っているMoritaです。

CakePHPでModel::find(‘list’)を使用するかと思います。
CakePHPでは設定より規約が重視されるので、知らないと思わぬつぼにハマるかもしれません。

Model::fint(‘list’)とは

データベースのテーブルからデータを取得する際に、
keyとvalueの形で取得してくれるものです。

通常はModelクラス(3系の場合、Tabelクラス)のプロパティとして設定したものが取得できるようになります。

// Model or Table クラス
public $primaryKey = 'example_id';
public $displayField = 'username';

プロパティに設定していない場合は?

上記のModel or Tableクラスにプロパティとして設定していない場合、
テーブルのプライマリーキーがkeyに、テーブルのカラム名にnameがあればvalueに設定されます。(nameがなくてtitleがある場合はそちらがvalueになる。)

まとめ

Model::find(‘list’)を使用する場合、Model or Tableクラスにプロパティとしてkeyとvalueを設定しない場合、デフォルトではkeyがプライマリーキー、nameがvalueとなる。
別の設定方法としては、findメソッドのオプションとして明示的に設定することも可能です。

コメント

タイトルとURLをコピーしました