/** * Builds a params array, like the kind populated by Criterion::appendPsTo(). * This is useful for building an array even when it is not using the appendPsTo() method. * @param array $columns * @param Criteria $values * @return array params array('column' => ..., 'table' => ..., 'value' => ...) */ private static function buildParams($columns, Criteria $values) { $params = array(); foreach ($columns as $key) { if ($values->containsKey($key)) { $crit = $values->getCriterion($key); $params[] = array('column' => $crit->getColumn(), 'table' => $crit->getTable(), 'value' => $crit->getValue()); } } return $params; }
public function testClone() { $c1 = new Criteria(); $c1->add('tbl.COL1', 'foo', Criteria::EQUAL); $c2 = clone $c1; $c2->addAnd('tbl.COL1', 'bar', Criteria::EQUAL); $nbCrit = 0; foreach ($c1->keys() as $key) { foreach ($c1->getCriterion($key)->getAttachedCriterion() as $criterion) { $nbCrit++; } } $this->assertEquals(1, $nbCrit, 'cloning a Criteria clones its Criterions'); }