Salut à vous,
J'ai une question aujourd hui qui concerne la réalisation d'un formulaire de recherche simple.
Aprés avoir testé et validé le champs tapé dans le formulaire de recherche, je récupère dans une variables mes différents résultats:

$search_results = $this->Service->find('all', array(
    'conditions' => array(
    'OR' => array(
    'title LIKE' => '%' . $search_optim . '%', 
    'type LIKE' => '%' . $search_optim . '%'
    )
    )
    ));

Je récupère donc dans search_results les informations de ma table Services qui contienne les mots cherchés dnas le title ou le type.

Ma question est simple, je voudrais étendre cette recherche à ma table Articles.
Pour vous dois-je créer une autre variable pour récupérer les propres informations de cette table ?

En espérant avoir été clair dans mes explications
Merci à vs

2 réponses


Tu peux créer une seconde requête SQL pour rechercher également dans la table articles, oui.

Bonjour,

En effet tu peux faire une seconde pour requete sur le model Article pour faire une recherche, et tu mix les résultats des deux tables dans un tableau.

Pour ce faire pense à charger le modèle dans ton controller.

Tu peux regarder dans le cookbook de cakephp :

http://book.cakephp.org/2.0/fr/controllers.html

Ou tu trouveras cette fonction

Controller::loadModel(string $modelClass, mixed $id)
La fonction loadModel() devient pratique quand vous avez besoin d’utiliser un model qui n’est pas le model du controller par défaut ou un de ses models associés:

Donc pour charger ton modèles dans le controller étranger

$this->loadModel('Article');

Et après tu fais ta requête .
$recentArticles = $this->Article->find();

Voila