quelques jours en PHP ici et j'en ai un qui m'a vraiment perplexe. J'utilise Propel2 pour récupérer des lignes d'une base de données en fonction des filtres que l'utilisateur sélectionne. En fin de compte, j'espère avoir beaucoup de filtres que l'utilisateur peut sélectionner, puis générer un appel Propel2 personnalisé pour récupérer les enregistrements. Je ne peux pas utiliser If/Then en raison du nombre exponentiel de requêtes possibles. Cependant, chaque approche de mon exemple ci-dessous a échoué pour moi.Propel2 Construire Requête avec des fonctions, puis appelez
$dealfinder = DealsQuery::create()->filterByStillvalid(1)->orderByInception('DESC');
if(isset($dept)) {
$dealfinder->filterByCategory($dept);
}
if (isset($early)) {
$oneHourAgo = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s'))- $dealDelay);
$dealfinder->filterByInception(array('max' => $oneHourAgo));
}
$dealfinder->paginate($page = $pageNum, $maxPerPage = $maxColumn*$maxRow);
Le code ci-dessus retours:
deals.stillvalid=:p1, deals.inception<=:p1
Cela peut juste être une chose de syntaxe enchaînant fonction PHP, alors voici ce que un appel Propel2 travail ressemblerait à ceci:
$dealfinder = DealsQuery::create()->filterByStillvalid(1)->filterByCategory($dept)
->orderByInception('DESC')->filterByInception(array('max' => $oneHourAgo))
->paginate($page = $pageNum, $maxPerPage = $maxColumn*$maxRow);
I serait très reconnaissant de l'aide avec cela. Je vous remercie.
Pour ce que cela vaut, j'ai pris un certain nombre d'approches à cela avec mes connaissances limitées. C'est une approche que j'ai modélisée sur celui-ci, qui a fonctionné pour lui: https://stackoverflow.com/questions/36401454/dynamic-table-name-in-propel-query/36524417 – ZoomStop