本文整理汇总了PHP中ModelCriteria::getTableMap方法的典型用法代码示例。如果您正苦于以下问题:PHP ModelCriteria::getTableMap方法的具体用法?PHP ModelCriteria::getTableMap怎么用?PHP ModelCriteria::getTableMap使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ModelCriteria
的用法示例。
在下文中一共展示了ModelCriteria::getTableMap方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
/**
* Constructor.
*
* @see ModelType How to use the preferred choices.
*
* @param string $class The FQCN of the model class to be loaded.
* @param string $labelPath A property path pointing to the property used for the choice labels.
* @param array $choices An optional array to use, rather than fetching the models.
* @param \ModelCriteria $queryObject The query to use retrieving model data from database.
* @param string $groupPath A property path pointing to the property used to group the choices.
* @param array|\ModelCriteria $preferred The preferred items of this choice.
* Either an array if $choices is given,
* or a \ModelCriteria to be merged with the $queryObject.
* @param PropertyAccessorInterface $propertyAccessor The reflection graph for reading property paths.
* @param string $useAsIdentifier a custom unique column (eg slug) to use instead of primary key.
*
* @throws MissingOptionsException In case the class parameter is empty.
* @throws InvalidOptionsException In case the query class is not found.
*/
public function __construct($class, $labelPath = null, $choices = null, $queryObject = null, $groupPath = null, $preferred = array(), PropertyAccessorInterface $propertyAccessor = null, $useAsIdentifier = null)
{
$this->class = $class;
$queryClass = $this->class . 'Query';
if (!class_exists($queryClass)) {
if (empty($this->class)) {
throw new MissingOptionsException('The "class" parameter is empty, you should provide the model class');
}
throw new InvalidOptionsException(sprintf('The query class "%s" is not found, you should provide the FQCN of the model class', $queryClass));
}
$query = new $queryClass();
$this->query = $queryObject ?: $query;
if ($useAsIdentifier) {
$this->identifier = array($this->query->getTableMap()->getColumn($useAsIdentifier));
} else {
$this->identifier = $this->query->getTableMap()->getPrimaryKeys();
}
$this->loaded = is_array($choices) || $choices instanceof \Traversable;
if ($preferred instanceof \ModelCriteria) {
$this->preferredQuery = $preferred->mergeWith($this->query);
}
if (!$this->loaded) {
// Make sure the constraints of the parent constructor are
// fulfilled
$choices = array();
$preferred = array();
}
if (1 === count($this->identifier) && $this->isScalar(current($this->identifier))) {
$this->identifierAsIndex = true;
}
parent::__construct($choices, $labelPath, $preferred, $groupPath, null, $propertyAccessor);
}
示例2: filterBySelection
protected function filterBySelection(\ModelCriteria $query)
{
$item = $this->getSelection();
if ($item) {
$relations = $this->query->getTableMap()->getRelations();
foreach ($relations as $relation) {
if ($relation->getRightTable()->getPhpName() == get_class($item) && in_array($relation->getType(), array(\RelationMap::MANY_TO_ONE))) {
$query->{'filterBy' . $relation->getName()}($item);
}
}
}
}
示例3: create
public static function create(\ModelCriteria $q, $relation, $relationAlias = null, $joinType = \Criteria::INNER_JOIN)
{
$tableMap = $q->getTableMap();
$relationMap = $tableMap->getRelation($relation);
// create a Join object for this join
$join = new static();
$join->setJoinType($joinType);
$join->setRelationMap($relationMap, $q->getModelAlias(), $relationAlias);
if ($previousJoin = $q->getPreviousJoin()) {
$join->setPreviousJoin($previousJoin);
}
// add the ModelJoin to the current object
if ($relationAlias) {
$q->addAlias($relationAlias, $relationMap->getRightTable()->getName());
$q->addJoinObject($join, $relationAlias);
} else {
$q->addJoinObject($join, $relationMap->getRightTable()->getName());
}
return $join;
}
示例4: getPrimaryKeyFieldName
/**
* This method will determine the primary key field name from a query object.
*
* @param ModelCriteria $query
* @return string
*/
protected function getPrimaryKeyFieldName($query)
{
$primaryKeyColumns = $query->getTableMap()->getPrimaryKeyColumns();
$primaryKeyColumn = reset($primaryKeyColumns);
return $primaryKeyColumn->getPhpName();
}