本文整理汇总了PHP中Propel\Runtime\ActiveQuery\Criteria::clearSelectColumns方法的典型用法代码示例。如果您正苦于以下问题:PHP Criteria::clearSelectColumns方法的具体用法?PHP Criteria::clearSelectColumns怎么用?PHP Criteria::clearSelectColumns使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Propel\Runtime\ActiveQuery\Criteria
的用法示例。
在下文中一共展示了Criteria::clearSelectColumns方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testAddJoinMultipleWithJoinTypeAndOperator
/**
* Test the Criteria::addJoinMultiple() method with join type and operator
*
* @link http://propel.phpdb.org/trac/ticket/606
*/
public function testAddJoinMultipleWithJoinTypeAndOperator()
{
$c = new Criteria();
$c->clearSelectColumns()->addMultipleJoin(array(array('TABLE_A.FOO_ID', 'TABLE_B.ID', Criteria::GREATER_EQUAL), array('TABLE_A.BAR', 'TABLE_B.BAZ', Criteria::LESS_THAN)), Criteria::LEFT_JOIN)->addSelectColumn("TABLE_A.ID");
$expect = 'SELECT TABLE_A.ID FROM TABLE_A ' . 'LEFT JOIN TABLE_B ON (TABLE_A.FOO_ID>=TABLE_B.ID AND TABLE_A.BAR<TABLE_B.BAZ)';
$params = array();
$result = $c->createSelectSql($params);
$this->assertEquals($expect, $result);
}
示例2: turnSelectColumnsToAliases
/**
* Ensures uniqueness of select column names by turning them all into aliases
* This is necessary for queries on more than one table when the tables share a column name
*
* @see http://propel.phpdb.org/trac/ticket/795
*
* @param Criteria $criteria
* @return Criteria The input, with Select columns replaced by aliases
*/
public function turnSelectColumnsToAliases(Criteria $criteria)
{
$selectColumns = $criteria->getSelectColumns();
// clearSelectColumns also clears the aliases, so get them too
$asColumns = $criteria->getAsColumns();
$criteria->clearSelectColumns();
$columnAliases = $asColumns;
// add the select columns back
foreach ($selectColumns as $clause) {
// Generate a unique alias
$baseAlias = preg_replace('/\\W/', '_', $clause);
$alias = $baseAlias;
// If it already exists, add a unique suffix
$i = 0;
while (isset($columnAliases[$alias])) {
$i++;
$alias = $baseAlias . '_' . $i;
}
// Add it as an alias
$criteria->addAsColumn($alias, $clause);
$columnAliases[$alias] = $clause;
}
// Add the aliases back, don't modify them
foreach ($asColumns as $name => $clause) {
$criteria->addAsColumn($name, $clause);
}
return $criteria;
}
示例3: testAddJoinMultipleWithJoinTypeAndOperator
/**
* Test the Criteria::addJoinMultiple() method with join type and operator
*
* @link http://propel.phpdb.org/trac/ticket/606
*/
public function testAddJoinMultipleWithJoinTypeAndOperator()
{
$c = new Criteria();
$c->clearSelectColumns()->addMultipleJoin([['TABLE_A.FOO_ID', 'TABLE_B.id', Criteria::GREATER_EQUAL], ['TABLE_A.BAR', 'TABLE_B.BAZ', Criteria::LESS_THAN]], Criteria::LEFT_JOIN)->addSelectColumn("TABLE_A.id");
$expect = $this->getSql('SELECT TABLE_A.id FROM TABLE_A ' . 'LEFT JOIN TABLE_B ON (TABLE_A.FOO_ID>=TABLE_B.id AND TABLE_A.BAR<TABLE_B.BAZ)');
$params = [];
$result = $c->createSelectSql($params);
$this->assertEquals($expect, $result);
}