2011-08-10 8 views
1

私のようなSQLクエリ何か構築するために探しています:cakePHPのfind()では、どのように定数を含めることができますか?

SELECT `Email`.`member_id`, `Email`.`1` FROM `emails` AS `Email` ... 

どのように私はその1を指定してくださいを:私はCakePHPが発生している

$this->Email->find('list', array(
    'fields' => array('Email.member_id', '1'), ... 

を使用してい

"SELECT email.member_id, 1 FROM email ... " 

をデータベースフィールドではなく定数ですか?私は基本的にはちょうどmember_idsの直線配列を取得し、その後にそれを変換するために、それは良いだろうMEMBER_IDのキーと1の値を持つ連想配列を返すようにしたい、この

をやりたいのはなぜ

私の望むデータ構造ですか?私はこれがより速くなると思った。

+0

私の答えを拡張しました。 – Chronial

+0

ありがとう、私はPHPを学んでいるPerlのプログラマーです。だから私が試みている多くのperl-ismsはPHPで他の作業方法を持っています。 – dereferenced

答えて

4

ケーキはそれを許可しません。あなたの特定のケースでは、私はなぜあなたが定数フィールドをとにかくしたいのだろうと思っています。しかし、一般的に、あなたは、仮想フィールドを使用することになっているというようなものします:基本的には、これを追加することにより、モデルの電子メールを変更します

http://book.cakephp.org/view/1608/Virtual-fields

var $virtualFields = array(
    'one' => '1' 
); 

今、あなたはこのようなあなたのクエリを行うことができます:あなたはあなたのコメントを追加ユースケースについては

$this->Email->find('list', array(
    'fields' => array('Email.member_id', 'Email.one'), ... 

ちょうど一直線に並んだIDの配列を取得し、それを後で埋めてください。それが速くなるだけでなく、ハッキーも理解しやすくなります。 ´array_fill_keys()´で簡単にそれを行うことができます。

+0

ありがとうございます。なぜ私はそれをしたいと思った私の投稿を更新しました – dereferenced

+0

@古典的なありがとう。これは完全に整数値のために働いていますが、私は文字列値のためにそれを行う必要があります。あなたは何かを提案できますか? –

関連する問題