【CakePHP】findの使い方(list)
バージョン:CakePHP 2.2.2
find('list’)を使用すると「primaryKey」が配列キー、「displayField」が配列値の形でデータ取得を行います。
デフォルトでは「id」と「name」というフィールドが取得できるみたいです。
もし、「name」がない場合は、「title」というフィールドが返ってきます。
「id」と「name」「title」以外のフィールドを取得したい場合は、下記のようにします。
1.モデルに「primaryKey」と「displayField」をセットする
class モデル名 extends AppModel { public $primaryKey = 'Field1'; public $displayField = 'Field2'; }
2.コントローラで取得時に指定する
$conditions = array( 'fields' => array( 'Field1', 'Field' ), ); $this->モデル名->find('list',$conditions);
また、名前など取得値を組み合わせたい場合は、次のようにします。
$this->モデル名->virtualFields = array( 'full_name' => "CONCAT(last_name , ' ', first_name)" ); $conditions = array( 'fields' => array( 'id', 'full_name' ), ); $this->モデル名->find('list',$conditions);