2016-08-15 3 views
0

Hallo an alle Extrahieren wird sehe ich die folgende Abfrageein Abfrageergebnis in cakephp 3

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

Das gibt mir eine solche Anordnung

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

und was ich will, ist bekommen der Wert zurückgegeben mich haben um dann eine Validierung durchzuführen, nicht, wie der von der Abfrage zurückgegebene Wert abgerufen werden soll, um so etwas wie zu tun 10 bitte helfen

Antwort

0

meine Fues Lösung dieses, ändern die Struktur meiner Abfrage

$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; 
    } 

Dank

1

Queries are lazily executed, und als solche Ihre Abfrage wird ein Cake\ORM\Query Objekt sein. Sie müssen die Abfrage ausführen, um die Ergebnisse verarbeiten zu können.

Wenn Sie Ihrer Abfrage ->toArray() hinzufügen, führt dies dazu, dass es ausgeführt und in ein Array konvertiert wird. Dadurch können Sie mit den Ergebnissen arbeiten.