Récupérer uniquement certains champs de trouver dans CAKEPHP
Mon problème est quand je récupérer les données de l'utilisateur à partir de la table des utilisateurs , tous les champs de la table utilisateur récupéré dans la table d'utilisateurs..mais je ne veux pas inclure le mot de passe et adresse e-mail dans qui donc est-il de toute façon à la seule extraction des domaines autres que le mot de passe et adresse e-mail?
ce qui concerne.
Vous avez des balises pour les trois différents CakePHP versions. Qui est-il?
De toute façon, pourquoi s'en faire si le mot de passe et l'email sont inclus dans la requête? Vous n'avez pas à show à l'utilisateur même si elles sont le résultat.
ya nous ne montrons que pour l'utilisateur, mais si il y a plus d'utilisateurs que cela prendra moins de temps si nous voulons récupérer tous les champs que certains champs...
Vous êtes à la micro-optimisation.
De toute façon, pourquoi s'en faire si le mot de passe et l'email sont inclus dans la requête? Vous n'avez pas à show à l'utilisateur même si elles sont le résultat.
ya nous ne montrons que pour l'utilisateur, mais si il y a plus d'utilisateurs que cela prendra moins de temps si nous voulons récupérer tous les champs que certains champs...
Vous êtes à la micro-optimisation.
OriginalL'auteur Meet Brahmbhatt | 2013-01-09
Vous devez vous connecter pour publier un commentaire.
Comme mentionné par juhana vous n'avez pas besoin d'utiliser tous les champs retournés par trouver votre appel. Il n'est pas clair quel problème que vous essayez de résoudre, et il serait dans votre intérêt de préciser ces détails dans les questions d'avenir.
Pour diriger les requêtes
Pour les requêtes directement sur votre modèle utilisateur, vous pouvez utiliser un peu de logique comme ceci:
Cependant
Ce ne sera pas faire quelque chose pour les requêtes, lorsque vous interrogez un autre modèle, par exemple
Dans le cas ci-dessus, tous les champs d'utilisateur sera renvoyé. Pour des utilisations comme cela, il est probablement préférable de définir votre liste de champs explicitement plutôt que de compter sur automatique de la magie:
C'est une bonne idée si vous de demander uniquement les champs que vous souhaitez utiliser - ce que vous avez demandé n'est pas cela. Toutefois, si la performance est la raison pour laquelle - vous n'allez pas remarqué de différence.
OriginalL'auteur AD7six
que vous avez à faire quelque chose comme ceci
Il suffit de mentionner votre besoin de les champs les champs de tableau.
si vous souhaitez récupérer à partir du modèle puis essayez ce
Grâce.
mise à jour de ma réponse
j'ai fait exactement la même chose... return $this->find('all',array('fields'=>array('id','nom d'utilisateur'))); maintenant, je veux ajouter une condition dans ce type array('condition'=>array('Utilisateur.id'=>CakeSession::read('Auth.De l'utilisateur.id') comment puis-je faire dans mon modèle?
OriginalL'auteur Moyed Ansari
Vous pouvez remarquez que j'utilise le Modèle.champ dans mon champ de déclarations, c'est juste au cas où vous avez un conflit de noms de champ dans tous les modèles connexes.
Prises à partir de la CakePHP manuel trouvé ici, toutes ces options ci-dessous sont disponibles pour vous lors de l'utilisation de la méthode de recherche sur les Modèles....
CakePHP ne pense pas vraiment comme ça, il n'y a aucun moyen de spécifier les champs renvoyés par défaut à partir d'un Model.php sans beaucoup de code, ce qui est probablement contre-productif. Les sons que vous avez besoin pour créer deux Modèles de...l'Utilisateur et UserDetails.. magasin des champs que vous ne souhaitez pas retourné par l'Utilisateur trouve dans UserDetails et le lien entre les deux. lorsque vous ensuite de faire des appels sur UserDetails que vous auriez à faire recurive=1
OriginalL'auteur Happy
Ajouter à votre
User
modèle:$this->includeAllFields
ne fait pas partie de CakePHP; c'est une propriété personnalisée que j'ai fait. Si, pour quelque raison que ce soit, vous devez inclure le mot de passe et adresse e-mail, il suffit d'ajouter$this->User->includeAllFields = true;
avant de le trouver.Le seul inconvénient de cette approche que je peux penser est que si un champ est jamais ajouté ou supprimé de la base de données, le tableau des champs dans le code ci-dessus doivent être mises à jour.
OriginalL'auteur Nick