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