[ Index ]
 

Code source de Symfony 1.0.0

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/lib/vendor/propel/validator/ -> UniqueValidator.php (source)

   1  <?php
   2  /*

   3   *  $Id: UniqueValidator.php 64 2005-05-13 02:43:56Z root $

   4   *

   5   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS

   6   * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT

   7   * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR

   8   * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT

   9   * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

  10   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

  11   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,

  12   * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY

  13   * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

  14   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE

  15   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

  16   *

  17   * This software consists of voluntary contributions made by many individuals

  18   * and is licensed under the LGPL. For more information please see

  19   * <http://propel.phpdb.org>.

  20   */
  21  
  22  require_once 'propel/validator/BasicValidator.php';
  23  
  24  /**

  25   * A validator for unique column names.

  26   *

  27   * <code>

  28   *   <column name="username" type="VARCHAR" size="25" required="true" />

  29   *

  30   *   <validator column="username">

  31   *     <rule name="unique" message="Username already exists !" />

  32   *   </validator>

  33   * </code>

  34   *

  35   * @author Michael Aichler <aichler@mediacluster.de>

  36   * @version $Revision: 64 $

  37   * @package propel.validator

  38   */
  39  class UniqueValidator implements BasicValidator
  40  {
  41  
  42      /**

  43       * @see BasicValidator::isValid()

  44       */
  45      public function isValid (ValidatorMap $map, $str)
  46      {
  47        $column = $map->getColumn();
  48  
  49        $c = new Criteria();
  50        $c->add($column->getFullyQualifiedName(), $str, Criteria::EQUAL);
  51  
  52        $isValid = false;
  53  
  54        try {
  55  
  56            $table = $column->getTable()->getPhpName();
  57            $cmd = sprintf('$isValid = %sPeer::doCount($c) == 0;', $table);
  58            eval($cmd);
  59  
  60        } catch(PropelException $e) {
  61          /* what to do here ? */

  62        }
  63  
  64        return $isValid;
  65      }
  66  }


Généré le : Fri Mar 16 22:42:14 2007 par Balluche grâce à PHPXref 0.7