CakePHP では、 list を呼び出す場合には、 通常 keyField は id が設定されます。
別のキー、値にする場合には、list を呼び出す際に、 keyField と valueField オプションを使うことで、それぞれキー、 値に使われるフィールドを設定することができます。
データ例
products
id | code | jan | name | price |
---|---|---|---|---|
1 | CODE-00001 | 4801234567801 | name-1 | 1,000 |
2 | CODE-00002 | 4801234567802 | name-2 | 2,000 |
3 | CODE-00003 | 4801234567803 | name-3 | 3,000 |
4 | CODE-00004 | 4801234567804 | name-4 | 4,000 |
5 | CODE-00005 | 4801234567805 | name-5 | 5,000 |
キー/値の変更
1 2 3 4 5 |
$products = $this->Products->find('list',[ 'keyField' => 'code', 'valueField' => 'name' ]) ->toArray(); |
検索したデータは、下記のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$data = [ [ 'code' => 'CODE-00001', 'name' => 'name-1' ],[ 'code' => 'CODE-00002', 'name' => 'name-2' ],[ 'code' => 'CODE-00003', 'name' => 'name-3' ],[ 'code' => 'CODE-00004', 'name' => 'name-4' ],[ 'code' => 'CODE-00005', 'name' => 'name-5' ] ]; |
Cookbook
Cookbook
自分のアプリケーションのデータから関連する連想配列のデータを生成できると便利なときがよくあります たとえば、 select エレメントを生成する際にはとても便利です。 CakePHP ではデータの 'list' を生成するメソッドを使うことで簡単にできます。
引用:キー値のペアを検索する