2016-10-11 5 views
0

Ich habe eine MYSQL-Tabelle namens "Geräte". Ich habe erfolgreich den Bunker/Kuchen gebacken. In der Tat habe ich die automatisch gebaute DevicesController.php voll funktionsfähig. Aber ich kann nicht herausfinden, wie man die Zeilen in einer Tabelle zählt. Ich habe versucht:In CakePHP 3.x Wie kann ich die Anzahl der Zeilen in einer MySql-Tabelle zählen?

$conn = ConnectionManager::get('default'); 
$numRows = $conn->execute('select count(*) from devices'); 

und

$this->DeviceSetups = TableRegistry::get('Devices'); 
$numRows = $this->Devices->query('select count(*) from devices'); // both like this 
$numRows = $this->Devices->query('select count(*) from devices')->execute(); // and like this 

und

$this->DeviceSetups = TableRegistry::get('Devices'); 
$numRows = $this->Devices->find('count'); 

durch mysql_query gehen() ist nicht wirklich eine gute Idee, weil ich den Zugang haben alle Informationen bereits Setup in app.php für CakePHP zu verwenden. Ich habe etwas anderes mit AnyModel versucht, das nicht funktioniert hat.

Die vorherigen 2 Versuche geben ein Cake \ Database \ Statement \ MysqlStatement nicht eine Ganzzahl mit der Anzahl der Zeilen in der Tabelle zurück. Ich habe this Antwort und this beantwortet und lesen Sie die CakePHP-Dokumente. Nichts scheint mir zu sagen, wie man eine Tabelle hochzählt oder wie man eine rohe My SQL-Befehlsfolge ausführt und dann auf das Ergebnis zugreift.

+0

Wenn Ihre db-Tabelle 'devices' heißt, sollte der Name der Tabellenklasse/Alias ​​normalerweise' Devices' sein, nicht 'DeviceSetups' !? Abgesehen davon ist es 'find() -> count()', es gibt keinen 'count'-Finder. ** http: //book.cakephp.org/3.0/en/orm/query-builder.html#returning-the-total-count-of-records** | ** http: //book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#getting-a-count-of-results** – ndm

+0

Thx, ja das war ein Tippfehler. Ich ändere immer ein paar Dinge, um sicherzustellen, dass meine Entwicklung proprietär bleibt. In diesem Fall hatte ich es in der Mitte zwischen den Änderungen. –

Antwort

0

Wenn Sie in Tabelle zählen möchten, dann sollte es wie folgt sein.

$count = $this->find()->count(); 
    echo $count; 
Verwandte Themen