2016-08-15 78 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()添加到您的查询,这将导致它被执行并转换为数组。这将允许您使用结果。