Ejemplo n.º 1
0
 /**
  * Constructor
  *
  * @param \ModelCriteria|string $modelOrQuery A query object, or model class as string.
  * @param array $options
  */
 public function __construct($modelOrQuery, array $options = array())
 {
     if (is_string($modelOrQuery)) {
         $this->model = $modelOrQuery;
         $this->query = \PropelQuery::from($this->model);
     } else {
         if ($modelOrQuery instanceof \ModelCriteria) {
             $this->query = $modelOrQuery;
             $this->model = $this->query->getModelName();
         } else {
             throw new \Exception('Invalid argument');
         }
     }
     parent::__construct($options);
 }
Ejemplo n.º 2
0
 /**
  * Define the hydration schema based on a query object.
  * Fills the Formatter's properties using a Criteria as source
  *
  * @param ModelCriteria $criteria
  *
  * @return PropelFormatter The current formatter object
  */
 public function init(ModelCriteria $criteria)
 {
     $this->dbName = $criteria->getDbName();
     $this->setClass($criteria->getModelName());
     $this->setWith($criteria->getWith());
     $this->asColumns = $criteria->getAsColumns();
     $this->hasLimit = $criteria->getLimit() != 0;
     return $this;
 }
Ejemplo n.º 3
0
 protected function filterByKeyword(\ModelCriteria $query, $params)
 {
     if (!empty($params['q'])) {
         $columns = array();
         $peerClass = constant($this->query->getModelName() . '::PEER');
         $phpNames = call_user_func(array($peerClass, 'getFieldNames'));
         foreach ($this->columns as $name => $column) {
             if (!empty($column['phpName'])) {
                 if (in_array($column['phpName'], $phpNames)) {
                     $columns[] = $this->query->getModelName() . '.' . $column['phpName'];
                 }
             }
         }
         array_unshift($columns, '"|"');
         $query->where('CONCAT_WS(' . join(',', $columns) . ') LIKE ?', '%' . $params['q'] . '%');
     }
 }
Ejemplo n.º 4
0
 public function testGetModelName()
 {
     $c = new ModelCriteria('bookstore', 'Book');
     $this->assertEquals('Book', $c->getModelName(), 'getModelName() returns the name of the class associated to the model class');
 }