【CakePHP】findの使い方(list)

2019年7月29日

バージョン: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);

スポンサーリンク