本文整理汇总了PHP中SQLQuery::dataClass方法的典型用法代码示例。如果您正苦于以下问题:PHP SQLQuery::dataClass方法的具体用法?PHP SQLQuery::dataClass怎么用?PHP SQLQuery::dataClass使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SQLQuery
的用法示例。
在下文中一共展示了SQLQuery::dataClass方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getQuery
/**
* Returns a SQL object representing the search context for the given
* list of query parameters.
*
* @param array $searchParams Map of search criteria, mostly taked from $_REQUEST.
* If a filter is applied to a relationship in dot notation,
* the parameter name should have the dots replaced with double underscores,
* for example "Comments__Name" instead of the filter name "Comments.Name".
* @param string|array $sort Database column to sort on.
* Falls back to {@link DataObject::$default_sort} if not provided.
* @param string|array $limit
* @param SQLQuery $existingQuery
* @return SQLQuery
*/
public function getQuery($searchParams, $sort = false, $limit = false, $existingQuery = null)
{
if ($existingQuery) {
if (!$existingQuery instanceof DataList) {
throw new InvalidArgumentException("existingQuery must be DataList");
}
if ($existingQuery->dataClass() != $this->modelClass) {
throw new InvalidArgumentException("existingQuery's dataClass is " . $existingQuery->dataClass() . ", {$this->modelClass} expected.");
}
$query = $existingQuery;
} else {
$query = DataList::create($this->modelClass);
}
$query->limit($limit);
$query->sort($sort);
// hack to work with $searchParems when it's an Object
$searchParamArray = array();
if (is_object($searchParams)) {
$searchParamArray = $searchParams->getVars();
} else {
$searchParamArray = $searchParams;
}
foreach ($searchParamArray as $key => $value) {
$key = str_replace('__', '.', $key);
if ($filter = $this->getFilter($key)) {
$filter->setModel($this->modelClass);
$filter->setValue($value);
if (!$filter->isEmpty()) {
$filter->apply($query->dataQuery());
}
}
}
if ($this->connective != "AND") {
throw new Exception("SearchContext connective '{$this->connective}' not supported after ORM-rewrite.");
}
return $query;
}