CakePHP Modèle avec “Entre deux dates”
J'ai un grand ensemble de données (plus d'un milliard de lignes). Le partitionnement des données dans la base de données par jour. En tant que tel, mon outil de requête DOIT spécifier un SQL entre la clause sur chaque requête, ou il aura à analyser chaque partition.. et bien, il va délai d'attente avant qu'il ne vient jamais en arrière.
Donc.. ma question est, le champ dans la base de données c'est partitionnée est une date..
Avec CakePHP, comment puis-je spécifier "entre" les dates dans mon formulaire?
Je pensais à faire "date_debut" et "end_date" dans le formulaire lui-même, mais cela peut m'apporter deux une deuxième question.. comment puis-je valider que dans un modèle qui est liée à une table?
OriginalL'auteur | 2009-08-25
Vous devez vous connecter pour publier un commentaire.
Si je suis vous suit correctement:
Puisque vous voulez valider ces dates, ils seront plus difficiles à saisir quand elles sont cachées à l'intérieur de votre tableau de conditions. Je suggère d'essayer de passer ces séparément et ensuite traiter avec eux plus tard:
Vous devrait être en mesure de gérer tout le reste dans le
beforeFind
filtre:Je n'ai pas essayé d'utiliser
Model::invalidate()
au cours d'une opération de recherche, de sorte que cela peut ne pas marcher du tout. L'idée est que si le formulaire est créé à l'aide deFormHelper
ces messages doivent le faire revenir à côté du champs de formulaire.À défaut, vous pourriez avoir besoin pour effectuer cette validation dans le contrôleur et l'utilisation
Session::setFlash()
. si oui, vous pouvez également vous débarrasser de labeforeFind
et de mettre leBETWEEN
tableau de conditions avec votre d'autres conditions.OriginalL'auteur deizel
si vous voulez trouver des 20 derniers jours des données .
autres sages entre les deux dates
OriginalL'auteur Tarun Gupta
Vous pourriez écrire une méthode personnalisée de votre modèle de recherche entre les dates:
Autant que la validation, vous pouvez utiliser le modèle de
beforeValidate()
de rappel pour valider les deux dates. Plus d'info sur ce ici.Ne fait que répondre à votre question?
OriginalL'auteur inkedmn