~fabiocbalbuquerque/sahana-agasti/web-services

« back to all changes in this revision

Viewing changes to apps/frontend/lib/util/agDoctrineQuery.class.php

  • Committer: Chad Heuschober
  • Date: 2011-05-04 18:50:43 UTC
  • mfrom: (1.1.971 trunk)
  • Revision ID: chad.heuschober@mail.cuny.edu-20110504185043-k91xu7u2hbzxlblx
Merged in most recent changes from cuny-sps-trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?php
2
 
 
3
 
/**
4
 
 * Extended Doctrine_Query to provide safe and additional methods
5
 
 *
6
 
 * PHP Version 5.3
7
 
 *
8
 
 * LICENSE: This source file is subject to LGPLv2.1 license
9
 
 * that is available through the world-wide-web at the following URI:
10
 
 * http://www.gnu.org/licenses/lgpl-2.1.html
11
 
 *
12
 
 * @author Chad Heuschober, CUNY SPS
13
 
 *
14
 
 * Copyright of the Sahana Software Foundation, sahanafoundation.org
15
 
 */
16
 
class agDoctrineQuery extends Doctrine_Query
17
 
{
18
 
  // these constants map to the custom hydration methods provides in this project
19
 
  const     HYDRATE_ASSOC_THREE_DIM = 'assoc_three_dim',
20
 
            HYDRATE_ASSOC_TWO_DIM = 'assoc_two_dim',
21
 
            HYDRATE_ASSOC_ONE_DIM = 'assoc_one_dim',
22
 
            HYDRATE_KEY_VALUE_PAIR = 'key_value_pair',
23
 
            HYDRATE_KEY_VALUE_ARRAY = 'key_value_array',
24
 
            HYDRATE_SINGLE_VALUE_ARRAY = 'single_value_array';
25
 
 
26
 
  /**
27
 
   * Extends the existing whereIn method so that a negative clause (WHERE FALSE) is returned if
28
 
   * the the $params array is empty.
29
 
   * <code>
30
 
   * $q->whereIn('u.id', array(10, 23, 44));
31
 
   * </code>
32
 
   *
33
 
   * @param string $expr      The operand of the IN
34
 
   * @param mixed $params     An array of parameters or a simple scalar
35
 
   * @param boolean $not      Whether or not to use NOT in front of IN. Defaults to false (simple IN clause)
36
 
   * @return Doctrine_Query   this object.
37
 
   */
38
 
  public function andWhereIn($expr, $params = array(), $not = false)
39
 
  {
40
 
      // if there's no params, return a negative match
41
 
      if (isset($params) and (count($params) == 0)) {
42
 
          return $this->andWhere('?', FALSE) ;
43
 
      }
44
 
 
45
 
      return parent::andWhereIn($expr, $params, $not) ;
46
 
  }
47
 
}
 
 
b'\\ No newline at end of file'