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']
ですか?
あなたの場合、それは一般的な方法でそれを返します:0 =すべてのモデルを反復し、特定のモデル名を持っていないので再び0)。あなたの結果は常にその時にあります$count[0][0]['fieldname']
。可能であれば、常にラッパーメソッドを使用することを強くお勧めします。
文書化されているように、Cakephpデータベースラッパーメソッドを使用しないのはなぜですか?
$count = $this->History->find('count', array('conditions'=>array('id'=>3, 'employee'=>28));
?
期待される出力になりますx
簡単に言えば、その機能のためです
$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'");