CakePHP 2.1 - Comment utiliser correctement DISTINCTES dans find()

J'ai une question qui me rend fou et je dois admettre que je ne suis pas du tout expérimenté dans CakePHP. Comme mentionné dans la présente question,
À l'aide DISTINCTES dans CakePHP trouver la fonction, à l'aide DISTINCTES de cette façon:

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

ne retourne pas de valeurs DISTINCTES, au lieu de cela, il renvoie toutes les lignes. En fait, l'DISTINCTES ici est complètement inutile, parce que, pour une raison quelconque , CakePHP ajoute TableName.iddans la requête SQL (pourquoi?? puis-je supprimer la référence id??), effectivement le retour chaque DISTINCTES de la clé primaire (=tous les rangs=inutile).

Donc, j'ai encore envie de retourner les valeurs DISTINCTES d'une field_name colonne. Je ne peux pas le faire en utilisant simplement la find('all') ou find('list') de la fonction? Est-ce vraiment la bonne façon de le faire à l'aide de ce Set::extract() la fonction décrite dans le lien ci-dessus? Qui semble être un trop indirecte solution par CakePHP, normalement Gâteau de rendre ma vie plus facile. 🙂 Quelle est la bonne façon d'utiliser les trouver et DISTINCTES ensemble? Peut-être DISTINCTES ne fonctionne pas pour find()?

En regardant le livre, ils disent: "Un exemple rapide de faire une requête DISTINCT. Vous pouvez utiliser d'autres opérateurs, tels que MIN(), MAX(), etc., d'une manière analogue:"

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

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

Cela indique que DISTINCTE devrait être possible de l'utiliser, mais qu'est-ce ici? N' (De L'Utilisateur.nom) correspondent à la field_name je veux DISTINCTES pour ou est my_column_name mon field_name?

Enfin, tout cela a changé lors de la migration de CakePHP 1.x CakePHP 2.x? C'est à dire sont les réponses pour CakePHP 1.x vu sur Stackoverflow-elle toujours pertinente?

Merci d'avance!

OriginalL'auteur alieninlondon | 2012-06-23