アーカイブ

‘cakephp’ タグのついている投稿

[cakephp]find(‘list’)でid・name以外のフィールドを取得

2008 年 11 月 21 日 snufkin コメントはありません

cakephp tipscakephp1.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 以外のフィールドを組み合わせる

タグ: , ,
カテゴリー: Tips, software タグ: , ,

[cakephp]文字コード

2008 年 11 月 7 日 snufkin コメントはありません

最初の設定で文字化けするときは、database.phpの中で、「encoding」を設定してやるとよい。

var $default = array(
	'driver' => 'mysql',
	'persistent' => false,
	'host' => 'localhost',
	'login' => 'user',
	'password' => 'password',
	'database' => 'database_name',
	'prefix' => '',
	'encoding' => 'utf8',
);
タグ: , ,
カテゴリー: Tips タグ: , ,