0

Cakephpでこの直接クエリメソッドを使用してカウントを取得しています(MVCの基準に反しています)。

$count = $this->History->query("SELECT count(id) AS x FROM ratings WHERE id='3' AND employee='28'");

$count[0][0]['x']しかし、値を取得するために使用する必要があることがわかりました。

で利用できないのはなぜ$count['x']ですか?

4

2 に答える 2

1

あなたの場合、それは一般的な方法でそれを返します:0 =すべてのモデルを反復し、特定のモデル名を持っていないので再び0)。あなたの結果は常にその時にあります$count[0][0]['fieldname']。可能であれば、常にラッパーメソッドを使用することを強くお勧めします。

文書化されているように、Cakephpデータベースラッパーメソッドを使用しないのはなぜですか?

$count = $this->History->find('count', array('conditions'=>array('id'=>3, 'employee'=>28));

期待される出力になりますx

于 2012-08-19T10:43:02.880 に答える
0

簡単に言えば、その機能のためです

$this->History->query(....);

一次元配列を返しません。helper function一次元配列を抽出して返すを作成することをお勧めします。

function single_query($query) {
    $result = $this->History->query($query);
    return $result[0][0];
}

それからそれを使用してください

$count = $this->single_query("SELECT count(id) AS x FROM ratings WHERE id='3' AND employee='28'");
于 2012-08-19T10:51:07.227 に答える