CakePHP de Recherche entre les 2 Jour des Dossiers
Je suis la construction d'une petite Application Web qui permet aux utilisateurs de Bureau de la réserve de Salles et de Matériel. Pour la Réservation de saisir un Début et une Date de Fin.
Lorsqu'un utilisateur essaie de trouver, le cas échéant (par exemple) la voiture est disponible sur 2012-10-23, et la base de données contient date de réservation les dossiers de Départ: 2012-10-20
et à la Fin: 2012-10-25
de (disons), toutes les voitures, comment dois-je inclure toutes les dates entre ma date d'entrées dans la recherche?
La $date
variable reçoit une valeur à partir de la Date de Champ de Formulaire de Recherche.
Cela, malheureusement, ne fonctionne pas, et je ne peux pas comprendre comment utiliser daysAsSql pour cette requête:
$conditions = array(
'conditions' => array(
'? BETWEEN ? AND ?' => array($date,'Equipment.date_start','Equipment.date_end'),
)));
$this->set('equipments', $this->Equipment->find('all', $conditions));
- Vous devez vérifier que la date ne doit pas être dans
startdate
etenddate
. nuts-and-bolts-of-cakephp.com/2008/06/30/... - Basé sur le Lien que vous avez fourni, j'ai changé le code pour cela: ` '? ENTRE les deux ? ET ?' => array($date,'Équipement.date_start','Équipement.date_end'), ` Malheureusement, ce n'est pas faire n'importe quoi ...
Vous devez vous connecter pour publier un commentaire.
Il y a une solution plus simple pour cela, mais merci pour l'aide:
(Comme une condition de la trouver:)
Ici est
CakePHP BETWEEN
exemple de requête.Je suis la définition de mes tableaux comme des variables, puis à l'aide de ces variables dans mon CakePHP trouver appel de la fonction:
Ref de
dateRange
ou de début / fin de docs, de l'api ou du code, pouvez-vous nous fournir un lien?Dans le cas où si vous avez une date et que vous souhaitez utiliser ENTRE
C'est le cas si vous avez De ET À
dans votre cas
Si vous êtes sur cakephp 2.0, c'est la réponse http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#TimeHelper::daysAsSql
Si vous êtes sur cakephp 1.3 vous pouvez utiliser TimeHelper, il suffit d'importer et d'utiliser la même fonction, comme par exemple dans la documentation ici http://book.cakephp.org/1.3/en/view/1471/Formatting
Vous ne pouvez pas utiliser la base de données des colonnes avec cette
BETWEEN
-syntaxe. Si vous affectez des chaînes dans le tableau, CakePHP va les citer. Même pour les valeurs numériques en fonction de votre configuration de base de données.Si vous voulez continuer à utiliser l'
BETWEEN
, vous pouvez écrire vos requêtes dans le tableau parce que CakePHP va pas échapper à la clés, mais seulement les valeurs.Concernant votre problème:
Vous pouvez même travailler avec MySQL fonctions de date et heure:
Si vous utilisez de la date/fonctions de temps, de ne pas les citer. Si vous utilisez une date précise de le mettre entre guillemets.