2011-02-24 2 views
1

J'ai commencé à utiliser CakePHP il y a 3 jours et je suis au milieu d'une solution de pointe en ce moment. Je l'apprends assez rapidement, mais certaines fonctionnalités ne sont pas encore claires dans ma tête.CakePHP Architectural Question - Ecrire une recherche personnalisée pour le modèle

Je cherchais des conseils sur la façon de procéder.

J'écris une recherche, où un utilisateur peut entrer des données dans de nombreux domaines (10 +) pour un membre du corps professoral. Ils peuvent entrer des informations pertinentes, telles que le prénom, le nom de famille ou les départements/divisions, et ceux-ci sont tous correctement associés dans le Modèle.

Je cherche à écrire une requête qui utilise comme les relevés et effectuer la recherche. Je pensais à pirater dans le modèle de la Faculté pour commencer à écrire ou étendre une fonction de recherche qui peut effectuer la recherche?

Est-ce la bonne approche? Dois-je écrire une fonction personnalisée pour une recherche? Y a-t-il une autre façon de faire cela?

J'ai volontairement laissé de côté beaucoup de détails au sujet de mon projet parce que je suis encore à apprendre le cadre maintenant, et que vous voulez entendre les meilleures options - Je ne veux pas être limité par la conception. Mais fondamentalement, j'ai un formulaire avec plusieurs champs tels que le nom, la date de naissance, les adhésions pour la faculté et j'ai besoin d'un utilisateur pour pouvoir entrer des informations et rechercher dans ma faculté.

Si quelqu'un pouvait me pointer dans la bonne direction, il serait grandement apprécié. J'ai beaucoup lu et je ne sais pas comment procéder.

Merci.

Répondre

-1

Ce que je tentais de faire est très simple. Ce n'est pas du tout une question d'architecture, j'avais juste besoin de lire sur Models et j'ai répondu à ma propre question.

Plus précisément, je besoin d'aide dans des conditions de recherche complexe, et le livre CakePHP a une section sur ce point:

http://book.cakephp.org/view/1030/Complex-Find-Conditions#!/view/1030/Complex-Find-Conditions

+0

puis de marquer votre propre réponse comme correcte - de préférence après avoir posté un peu de code de solution de travail. –

+0

J'essayais, malheureusement StackOverflow m'oblige à attendre 2 jours avant de marquer ma propre réponse comme correcte. – Foo

0

Il y a beaucoup de façons de gérer cela avec gâteau, mais les bonnes nouvelles sont, vous n'avez probablement pas. Il y a beaucoup de modules de recherche pour Cake qui rendent cela beaucoup plus facile à penser.

Vous voudrez peut-être essayer Neil Crooke's "Searchable Plugin" Cake.

plugin de Neil est assez solide, et his post on the subject

0

Voilà comment je gérer la recherche. Si vous ne disposez que d'une seule zone de texte pouvant accepter des données pour n'importe quel champ, au lieu de $ this-> data ['Faculty'], parcourez un tableau des champs que vous souhaitez rechercher.

foreach ($this->data['Faculty'] as $field => $value){ 
      $conditions[$field . ' LIKE'] => '%' . $value . '%'; 
} 
$results = $this->Faculty->find('all', 
    array(
     'conditions'=>array('OR'=>$conditions), //or use AND here depending on need 
    ) 
); 
$this->set('results',$results); 
Questions connexes