Je développe un système qui contient des rapports des ordinateurs des clients et affiche les échecs dans une liste. Je tente d'écrire une requête qui localise tous les systèmes qui ont actuellement échoué ou ont des échecs dans le passé.CakePHP Query - Conditionnel basé sur Container Champ
Mon modèle pour Computers
a un champ qui indique last_report_pass
qui me permet de trouver rapidement les ordinateurs qui ont échoué le jour en cours. Mes Reports
sont associés à un ID d'ordinateur et ont un champ appelé status
qui indique s'il s'agit d'une réussite ou d'échec.
Je tente d'écrire une requête qui montrera seulement last_report_pass
étant 0
, ou a échoué, ou l'afficher si elle a des rapports qui ont été trouvés et joints (signifiant qu'il y avait des échecs précédents).
Voici mon idée était:
$computers = $this->Computers->find('all', [
'conditions' => [
'last_report_pass' => '0',
'COUNT(Reports) NOT' => '0'
],
'contain' => [
'Reports' => [
'conditions' => [
'status' => '0'
]
]
);
Je ne sais pas quoi faire d'ici. Je pourrais probablement écrire cela en SQL mais j'essaie de rester avec le constructeur de requêtes ORM de Cake. Merci d'avance!
Je serais probablement utiliser un cache de compteur pour compter ces ... ce serait facilement la réponse la plus simple et vous serait alors stocker le nombre de rapports dans le tableau des ordinateurs qui serait à portée de main dans d'autres façons aussi peut-être. –