こんちには、フリーの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メソッドのオプションとして明示的に設定することも可能です。
コメント