[cakephp]find(‘list’)でid・name以外のフィールドを取得
2008 年 11 月 21 日
コメントはありません
cakephp1.2でgenerateListが非推奨になったのでそれに変わる方法を探しました。
どうやらfind(‘list’)を使うと、対象モデルの「id」と「name」、または「id」と「title」の配列がかえってくるみたい。
配列の組み合わせを変えるには、find() の第2引数で指定するといいらしい。
$fields = array(
"fields" => array(
"User.display_name"));
$users = $this->User->find("list", $fields);
?>
とすると、
Array ( [1] => admin1 [2] => owner1 [3] => manager1 [4] => manager2 )
となり、
array(
"User.email",
"User.display_name"));
$users = $this->User->find("list", $fields);
?>
とすると、
Array ( [admin1@example.com] => admin1 [owner1@example.com] => owner1 [manager1@example.com] => manager1 [manager2@example.com] => manager2)
さらに
array(
"User.email",
"User.display_name",
"User.role_id"));
$users = $this->User->find("list", $fields);
?>
とすると、
Array (
[1] => Array ( ................................. Admin
[admin1@example.com] => admin1 )
[2] => Array ( ................................. Owner
[owner1@example.com] => owner1 )
[3] => Array ( ................................. Manager
[manager1@example.com] => manager1
[manager2@example.com] => manager2 )
)
のように3つめの配列でグルーピングされるみたいです。
参考:Model | find(“list”) により得られる配列で id/name 以外のフィールドを組み合わせる
最近のコメント