2016-08-15 116 views
0

大家會看到,我有以下查詢在CakePHP中提取查詢結果3

$query = $this->PreguntasAlternativas->find(); 
$query->select(['id_alternativa' => $query->func()->max('id_alternativa') 
     ])->where(['id_pregunta' => $idquestion]); 

這將返回我這樣的安排

query(array) 
0(object) 
    id_alternativa(null) 

和我要的是得到返回的值我然後做一個驗證,而不是如何檢索查詢返回的值我做類似的事情

if($query == null){ 
    $result = 1; 
}else{ 
    $result = +1; 
} 

請幫助

回答

0

我fues解決這一點,改變我的查詢的結構

$query = $this->PreguntasAlternativas->find('all', ['conditions' =>  ['id_pregunta' => $idquestion]]); 
    $result = $query->max('id_alternativa'); 
    if(!$result['id_alternativa']){ 
     $result['id_alternativa'] = 1; 
    } else { 
     $result['id_alternativa'] += 1; 
    } 

感謝

1

Queries are lazily executed,因此您的查詢將是一個Cake\ORM\Query對象。您將需要執行查詢以便能夠處理結果。

如果您將->toArray()添加到您的查詢,這將導致它被執行並轉換爲數組。這將允許您使用結果。