本文整理匯總了PHP中Propel\Runtime\ActiveQuery\ModelCriteria::filterBy方法的典型用法代碼示例。如果您正苦於以下問題:PHP ModelCriteria::filterBy方法的具體用法?PHP ModelCriteria::filterBy怎麽用?PHP ModelCriteria::filterBy使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Propel\Runtime\ActiveQuery\ModelCriteria
的用法示例。
在下文中一共展示了ModelCriteria::filterBy方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: testFilterBy
public function testFilterBy()
{
$c = new ModelCriteria('bookstore', 'Propel\\Tests\\Bookstore\\Book');
$c->filterBy('Title', 'foo');
$sql = $this->getSql('SELECT FROM `book` WHERE book.TITLE=:p1');
$params = array(array('table' => 'book', 'column' => 'TITLE', 'value' => 'foo'));
$this->assertCriteriaTranslation($c, $sql, $params, 'filterBy() accepts a simple column name');
$c = new ModelCriteria('bookstore', 'Propel\\Tests\\Bookstore\\Book');
$c->filterBy('Title', 'foo', Criteria::NOT_EQUAL);
$sql = $this->getSql('SELECT FROM `book` WHERE book.TITLE<>:p1');
$params = array(array('table' => 'book', 'column' => 'TITLE', 'value' => 'foo'));
$this->assertCriteriaTranslation($c, $sql, $params, 'filterBy() accepts a sicustom comparator');
$c = new ModelCriteria('bookstore', 'Propel\\Tests\\Bookstore\\Book', 'b');
$c->filterBy('Title', 'foo');
$sql = $this->getSql('SELECT FROM `book` WHERE book.TITLE=:p1');
$params = array(array('table' => 'book', 'column' => 'TITLE', 'value' => 'foo'));
$this->assertCriteriaTranslation($c, $sql, $params, 'filterBy() accepts a simple column name, even if initialized with an alias');
}
示例2: testGetParams
public function testGetParams()
{
$c = new ModelCriteria('bookstore', 'Propel\\Tests\\Bookstore\\Book');
$c->filterBy('Title', 'foo');
$expectedParams = array(array('table' => 'book', 'column' => 'title', 'value' => 'foo'));
$params = $c->getParams();
$this->assertEquals($expectedParams, $params, 'test getting parameters with a simple criterion');
$c = new ModelCriteria('bookstore', 'Propel\\Tests\\Bookstore\\Book');
$c->filterBy('Title', 'foo', Criteria::LIKE);
$expectedParams = array(array('table' => 'book', 'column' => 'title', 'value' => 'foo'));
$this->assertEquals($expectedParams, $params, 'test getting parameters with Specialized Criterion used for LIKE expressions');
}
示例3: addFilters
/**
* Add filters fields to query
*
* @param ModelCriteria $query
*/
private function addFilters(ModelCriteria &$query)
{
if (count($this->query) > 0) {
foreach ($this->query as $field => $value) {
if ($this->checkFieldExists($field)) {
$tableField = ucfirst($field);
if (preg_match('/^<=/', $value)) {
$query->filterBy($tableField, substr($value, 2, strlen($value)), Criteria::LESS_EQUAL);
} elseif (preg_match('/^<=/', $value)) {
$query->filterBy($tableField, substr($value, 1, strlen($value)), Criteria::LESS_EQUAL);
} elseif (preg_match('/^>=/', $value)) {
$query->filterBy($tableField, substr($value, 2, strlen($value)), Criteria::GREATER_EQUAL);
} elseif (preg_match('/^>/', $value)) {
$query->filterBy($tableField, substr($value, 1, strlen($value)), Criteria::GREATER_THAN);
} elseif (preg_match('/^(\'|\\")(.*)(\'|\\")$/', $value)) {
$text = preg_replace('/(\'|\\")/', '', $value);
$text = preg_replace('/\\ /', '%', $text);
$query->filterBy($tableField, '%' . $text . '%', Criteria::LIKE);
} else {
$query->filterBy($tableField, $value, Criteria::EQUAL);
}
}
}
}
}