CakePHP 2.1 - Wie richtig verwenden, unterscheidet sich in der find()

Ich habe eine Frage die mich verrückt und ich muss zugeben, ich bin nicht erlebt, dass in CakePHP. Wie bereits erwähnt, in dieser Frage,
Unter Verwendung von DISTINCT in einer CakePHP-finden-Funktion, unter Verwendung von DISTINCT auf diese Weise:

$this->Model->find('all', array('fields'=>'DISTINCT field_name'));

zurück keine EINDEUTIGEN Werte, sondern es werden alle Zeilen. In der Tat, die DISTINCT ist hier völlig sinnlos, weil, aus irgendeinem Grund , CakePHP fügt TableName.idin der SQL-Abfrage (warum?? kann ich entfernen Sie die id-Referenz??), effektiv die Rückgabe jedes EINDEUTIGE Primärschlüssel (=alle Zeilen=nicht hilfreich).

So, ich will noch die Rückkehr der unterschiedlichen Werte einer bestimmten Spalte Feldname. Kann ich es nicht einfach mit der find('all') oder find('list') - Funktion? Ist es wirklich der richtige Weg, es zu tun mit diesem Set::extract () - Funktion, beschrieben in dem link oben? Das scheint ein übermäßig indirekte Lösung von CakePHP, normalerweise Kuchen machen mein Leben leichter. 🙂 Was ist die richtige Art der Verwendung finden und UNTERSCHIEDLICHE zusammen? Vielleicht DISTINCT funktioniert nicht für die find()?

Blick auf das Kochbuch, Sie sagen: "Ein schnelles Beispiel für eine DISTINCT-Abfrage. Sie können auch andere Operatoren wie MIN(), MAX(), etc., in ähnlicher Weise:"

<?php
    array(
        'fields' => array('DISTINCT (User.name) AS my_column_name'),
        'order' = >array('User.id DESC')
    )
?>

Quelle: http://book.cakephp.org/2.0/en/models/retrieving-your-data.html

Dies zeigt, dass VERSCHIEDENE sollte auch möglich sein, aber was ist hier? Tut (Der Benutzer.name) entsprechen dem field_name ich will deutlich für oder ist my_column_name meine field_name?

Schließlich hat jede dieser verändert sich bei der Migration von CakePHP 1.x CakePHP 2.x? Das heißt, sind die Antworten für CakePHP 1.x gesehen auf Stackoverflow immer noch relevant?

Vielen Dank im Voraus!

Schreibe einen Kommentar