868 lines
31 KiB
PHP
868 lines
31 KiB
PHP
<?php
|
|
|
|
namespace Trinity\Bundle\MediaBundle\Model\om;
|
|
|
|
use \Criteria;
|
|
use \Exception;
|
|
use \ModelCriteria;
|
|
use \ModelJoin;
|
|
use \PDO;
|
|
use \Propel;
|
|
use \PropelCollection;
|
|
use \PropelException;
|
|
use \PropelObjectCollection;
|
|
use \PropelPDO;
|
|
use Trinity\Bundle\MediaBundle\Model\Media;
|
|
use Trinity\Bundle\MediaBundle\Model\Type;
|
|
use Trinity\Bundle\MediaBundle\Model\TypePeer;
|
|
use Trinity\Bundle\MediaBundle\Model\TypeQuery;
|
|
|
|
/**
|
|
* @method TypeQuery orderById($order = Criteria::ASC) Order by the id column
|
|
* @method TypeQuery orderByLabel($order = Criteria::ASC) Order by the label column
|
|
* @method TypeQuery orderByIcon($order = Criteria::ASC) Order by the icon column
|
|
* @method TypeQuery orderByThumbnail($order = Criteria::ASC) Order by the thumbnail column
|
|
* @method TypeQuery orderByMimes($order = Criteria::ASC) Order by the mimes column
|
|
* @method TypeQuery orderByCreatedAt($order = Criteria::ASC) Order by the created_at column
|
|
* @method TypeQuery orderByUpdatedAt($order = Criteria::ASC) Order by the updated_at column
|
|
* @method TypeQuery orderBySortableRank($order = Criteria::ASC) Order by the sortable_rank column
|
|
* @method TypeQuery orderBySlug($order = Criteria::ASC) Order by the slug column
|
|
*
|
|
* @method TypeQuery groupById() Group by the id column
|
|
* @method TypeQuery groupByLabel() Group by the label column
|
|
* @method TypeQuery groupByIcon() Group by the icon column
|
|
* @method TypeQuery groupByThumbnail() Group by the thumbnail column
|
|
* @method TypeQuery groupByMimes() Group by the mimes column
|
|
* @method TypeQuery groupByCreatedAt() Group by the created_at column
|
|
* @method TypeQuery groupByUpdatedAt() Group by the updated_at column
|
|
* @method TypeQuery groupBySortableRank() Group by the sortable_rank column
|
|
* @method TypeQuery groupBySlug() Group by the slug column
|
|
*
|
|
* @method TypeQuery leftJoin($relation) Adds a LEFT JOIN clause to the query
|
|
* @method TypeQuery rightJoin($relation) Adds a RIGHT JOIN clause to the query
|
|
* @method TypeQuery innerJoin($relation) Adds a INNER JOIN clause to the query
|
|
*
|
|
* @method TypeQuery leftJoinMedia($relationAlias = null) Adds a LEFT JOIN clause to the query using the Media relation
|
|
* @method TypeQuery rightJoinMedia($relationAlias = null) Adds a RIGHT JOIN clause to the query using the Media relation
|
|
* @method TypeQuery innerJoinMedia($relationAlias = null) Adds a INNER JOIN clause to the query using the Media relation
|
|
*
|
|
* @method Type findOne(PropelPDO $con = null) Return the first Type matching the query
|
|
* @method Type findOneOrCreate(PropelPDO $con = null) Return the first Type matching the query, or a new Type object populated from the query conditions when no match is found
|
|
*
|
|
* @method Type findOneByLabel(string $label) Return the first Type filtered by the label column
|
|
* @method Type findOneByIcon(string $icon) Return the first Type filtered by the icon column
|
|
* @method Type findOneByThumbnail(string $thumbnail) Return the first Type filtered by the thumbnail column
|
|
* @method Type findOneByMimes(string $mimes) Return the first Type filtered by the mimes column
|
|
* @method Type findOneByCreatedAt(string $created_at) Return the first Type filtered by the created_at column
|
|
* @method Type findOneByUpdatedAt(string $updated_at) Return the first Type filtered by the updated_at column
|
|
* @method Type findOneBySortableRank(int $sortable_rank) Return the first Type filtered by the sortable_rank column
|
|
* @method Type findOneBySlug(string $slug) Return the first Type filtered by the slug column
|
|
*
|
|
* @method array findById(int $id) Return Type objects filtered by the id column
|
|
* @method array findByLabel(string $label) Return Type objects filtered by the label column
|
|
* @method array findByIcon(string $icon) Return Type objects filtered by the icon column
|
|
* @method array findByThumbnail(string $thumbnail) Return Type objects filtered by the thumbnail column
|
|
* @method array findByMimes(string $mimes) Return Type objects filtered by the mimes column
|
|
* @method array findByCreatedAt(string $created_at) Return Type objects filtered by the created_at column
|
|
* @method array findByUpdatedAt(string $updated_at) Return Type objects filtered by the updated_at column
|
|
* @method array findBySortableRank(int $sortable_rank) Return Type objects filtered by the sortable_rank column
|
|
* @method array findBySlug(string $slug) Return Type objects filtered by the slug column
|
|
*/
|
|
abstract class BaseTypeQuery extends ModelCriteria
|
|
{
|
|
/**
|
|
* Initializes internal state of BaseTypeQuery object.
|
|
*
|
|
* @param string $dbName The dabase name
|
|
* @param string $modelName The phpName of a model, e.g. 'Book'
|
|
* @param string $modelAlias The alias for the model in this query, e.g. 'b'
|
|
*/
|
|
public function __construct($dbName = 'default', $modelName = 'Trinity\\Bundle\\MediaBundle\\Model\\Type', $modelAlias = null)
|
|
{
|
|
parent::__construct($dbName, $modelName, $modelAlias);
|
|
}
|
|
|
|
/**
|
|
* Returns a new TypeQuery object.
|
|
*
|
|
* @param string $modelAlias The alias of a model in the query
|
|
* @param TypeQuery|Criteria $criteria Optional Criteria to build the query from
|
|
*
|
|
* @return TypeQuery
|
|
*/
|
|
public static function create($modelAlias = null, $criteria = null)
|
|
{
|
|
if ($criteria instanceof TypeQuery) {
|
|
return $criteria;
|
|
}
|
|
$query = new TypeQuery();
|
|
if (null !== $modelAlias) {
|
|
$query->setModelAlias($modelAlias);
|
|
}
|
|
if ($criteria instanceof Criteria) {
|
|
$query->mergeWith($criteria);
|
|
}
|
|
|
|
return $query;
|
|
}
|
|
|
|
/**
|
|
* Find object by primary key.
|
|
* Propel uses the instance pool to skip the database if the object exists.
|
|
* Go fast if the query is untouched.
|
|
*
|
|
* <code>
|
|
* $obj = $c->findPk(12, $con);
|
|
* </code>
|
|
*
|
|
* @param mixed $key Primary key to use for the query
|
|
* @param PropelPDO $con an optional connection object
|
|
*
|
|
* @return Type|Type[]|mixed the result, formatted by the current formatter
|
|
*/
|
|
public function findPk($key, $con = null)
|
|
{
|
|
if ($key === null) {
|
|
return null;
|
|
}
|
|
if ((null !== ($obj = TypePeer::getInstanceFromPool((string) $key))) && !$this->formatter) {
|
|
// the object is alredy in the instance pool
|
|
return $obj;
|
|
}
|
|
if ($con === null) {
|
|
$con = Propel::getConnection(TypePeer::DATABASE_NAME, Propel::CONNECTION_READ);
|
|
}
|
|
$this->basePreSelect($con);
|
|
if ($this->formatter || $this->modelAlias || $this->with || $this->select
|
|
|| $this->selectColumns || $this->asColumns || $this->selectModifiers
|
|
|| $this->map || $this->having || $this->joins) {
|
|
return $this->findPkComplex($key, $con);
|
|
} else {
|
|
return $this->findPkSimple($key, $con);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Alias of findPk to use instance pooling
|
|
*
|
|
* @param mixed $key Primary key to use for the query
|
|
* @param PropelPDO $con A connection object
|
|
*
|
|
* @return Type A model object, or null if the key is not found
|
|
* @throws PropelException
|
|
*/
|
|
public function findOneById($key, $con = null)
|
|
{
|
|
return $this->findPk($key, $con);
|
|
}
|
|
|
|
/**
|
|
* Find object by primary key using raw SQL to go fast.
|
|
* Bypass doSelect() and the object formatter by using generated code.
|
|
*
|
|
* @param mixed $key Primary key to use for the query
|
|
* @param PropelPDO $con A connection object
|
|
*
|
|
* @return Type A model object, or null if the key is not found
|
|
* @throws PropelException
|
|
*/
|
|
protected function findPkSimple($key, $con)
|
|
{
|
|
$sql = 'SELECT `id`, `label`, `icon`, `thumbnail`, `mimes`, `created_at`, `updated_at`, `sortable_rank`, `slug` FROM `media_type` WHERE `id` = :p0';
|
|
try {
|
|
$stmt = $con->prepare($sql);
|
|
$stmt->bindValue(':p0', $key, PDO::PARAM_INT);
|
|
$stmt->execute();
|
|
} catch (Exception $e) {
|
|
Propel::log($e->getMessage(), Propel::LOG_ERR);
|
|
throw new PropelException(sprintf('Unable to execute SELECT statement [%s]', $sql), $e);
|
|
}
|
|
$obj = null;
|
|
if ($row = $stmt->fetch(PDO::FETCH_NUM)) {
|
|
$obj = new Type();
|
|
$obj->hydrate($row);
|
|
TypePeer::addInstanceToPool($obj, (string) $key);
|
|
}
|
|
$stmt->closeCursor();
|
|
|
|
return $obj;
|
|
}
|
|
|
|
/**
|
|
* Find object by primary key.
|
|
*
|
|
* @param mixed $key Primary key to use for the query
|
|
* @param PropelPDO $con A connection object
|
|
*
|
|
* @return Type|Type[]|mixed the result, formatted by the current formatter
|
|
*/
|
|
protected function findPkComplex($key, $con)
|
|
{
|
|
// As the query uses a PK condition, no limit(1) is necessary.
|
|
$criteria = $this->isKeepQuery() ? clone $this : $this;
|
|
$stmt = $criteria
|
|
->filterByPrimaryKey($key)
|
|
->doSelect($con);
|
|
|
|
return $criteria->getFormatter()->init($criteria)->formatOne($stmt);
|
|
}
|
|
|
|
/**
|
|
* Find objects by primary key
|
|
* <code>
|
|
* $objs = $c->findPks(array(12, 56, 832), $con);
|
|
* </code>
|
|
* @param array $keys Primary keys to use for the query
|
|
* @param PropelPDO $con an optional connection object
|
|
*
|
|
* @return PropelObjectCollection|Type[]|mixed the list of results, formatted by the current formatter
|
|
*/
|
|
public function findPks($keys, $con = null)
|
|
{
|
|
if ($con === null) {
|
|
$con = Propel::getConnection($this->getDbName(), Propel::CONNECTION_READ);
|
|
}
|
|
$this->basePreSelect($con);
|
|
$criteria = $this->isKeepQuery() ? clone $this : $this;
|
|
$stmt = $criteria
|
|
->filterByPrimaryKeys($keys)
|
|
->doSelect($con);
|
|
|
|
return $criteria->getFormatter()->init($criteria)->format($stmt);
|
|
}
|
|
|
|
/**
|
|
* Filter the query by primary key
|
|
*
|
|
* @param mixed $key Primary key to use for the query
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function filterByPrimaryKey($key)
|
|
{
|
|
|
|
return $this->addUsingAlias(TypePeer::ID, $key, Criteria::EQUAL);
|
|
}
|
|
|
|
/**
|
|
* Filter the query by a list of primary keys
|
|
*
|
|
* @param array $keys The list of primary key to use for the query
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function filterByPrimaryKeys($keys)
|
|
{
|
|
|
|
return $this->addUsingAlias(TypePeer::ID, $keys, Criteria::IN);
|
|
}
|
|
|
|
/**
|
|
* Filter the query on the id column
|
|
*
|
|
* Example usage:
|
|
* <code>
|
|
* $query->filterById(1234); // WHERE id = 1234
|
|
* $query->filterById(array(12, 34)); // WHERE id IN (12, 34)
|
|
* $query->filterById(array('min' => 12)); // WHERE id >= 12
|
|
* $query->filterById(array('max' => 12)); // WHERE id <= 12
|
|
* </code>
|
|
*
|
|
* @param mixed $id The value to use as filter.
|
|
* Use scalar values for equality.
|
|
* Use array values for in_array() equivalent.
|
|
* Use associative array('min' => $minValue, 'max' => $maxValue) for intervals.
|
|
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function filterById($id = null, $comparison = null)
|
|
{
|
|
if (is_array($id)) {
|
|
$useMinMax = false;
|
|
if (isset($id['min'])) {
|
|
$this->addUsingAlias(TypePeer::ID, $id['min'], Criteria::GREATER_EQUAL);
|
|
$useMinMax = true;
|
|
}
|
|
if (isset($id['max'])) {
|
|
$this->addUsingAlias(TypePeer::ID, $id['max'], Criteria::LESS_EQUAL);
|
|
$useMinMax = true;
|
|
}
|
|
if ($useMinMax) {
|
|
return $this;
|
|
}
|
|
if (null === $comparison) {
|
|
$comparison = Criteria::IN;
|
|
}
|
|
}
|
|
|
|
return $this->addUsingAlias(TypePeer::ID, $id, $comparison);
|
|
}
|
|
|
|
/**
|
|
* Filter the query on the label column
|
|
*
|
|
* Example usage:
|
|
* <code>
|
|
* $query->filterByLabel('fooValue'); // WHERE label = 'fooValue'
|
|
* $query->filterByLabel('%fooValue%'); // WHERE label LIKE '%fooValue%'
|
|
* </code>
|
|
*
|
|
* @param string $label The value to use as filter.
|
|
* Accepts wildcards (* and % trigger a LIKE)
|
|
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function filterByLabel($label = null, $comparison = null)
|
|
{
|
|
if (null === $comparison) {
|
|
if (is_array($label)) {
|
|
$comparison = Criteria::IN;
|
|
} elseif (preg_match('/[\%\*]/', $label)) {
|
|
$label = str_replace('*', '%', $label);
|
|
$comparison = Criteria::LIKE;
|
|
}
|
|
}
|
|
|
|
return $this->addUsingAlias(TypePeer::LABEL, $label, $comparison);
|
|
}
|
|
|
|
/**
|
|
* Filter the query on the icon column
|
|
*
|
|
* Example usage:
|
|
* <code>
|
|
* $query->filterByIcon('fooValue'); // WHERE icon = 'fooValue'
|
|
* $query->filterByIcon('%fooValue%'); // WHERE icon LIKE '%fooValue%'
|
|
* </code>
|
|
*
|
|
* @param string $icon The value to use as filter.
|
|
* Accepts wildcards (* and % trigger a LIKE)
|
|
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function filterByIcon($icon = null, $comparison = null)
|
|
{
|
|
if (null === $comparison) {
|
|
if (is_array($icon)) {
|
|
$comparison = Criteria::IN;
|
|
} elseif (preg_match('/[\%\*]/', $icon)) {
|
|
$icon = str_replace('*', '%', $icon);
|
|
$comparison = Criteria::LIKE;
|
|
}
|
|
}
|
|
|
|
return $this->addUsingAlias(TypePeer::ICON, $icon, $comparison);
|
|
}
|
|
|
|
/**
|
|
* Filter the query on the thumbnail column
|
|
*
|
|
* Example usage:
|
|
* <code>
|
|
* $query->filterByThumbnail('fooValue'); // WHERE thumbnail = 'fooValue'
|
|
* $query->filterByThumbnail('%fooValue%'); // WHERE thumbnail LIKE '%fooValue%'
|
|
* </code>
|
|
*
|
|
* @param string $thumbnail The value to use as filter.
|
|
* Accepts wildcards (* and % trigger a LIKE)
|
|
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function filterByThumbnail($thumbnail = null, $comparison = null)
|
|
{
|
|
if (null === $comparison) {
|
|
if (is_array($thumbnail)) {
|
|
$comparison = Criteria::IN;
|
|
} elseif (preg_match('/[\%\*]/', $thumbnail)) {
|
|
$thumbnail = str_replace('*', '%', $thumbnail);
|
|
$comparison = Criteria::LIKE;
|
|
}
|
|
}
|
|
|
|
return $this->addUsingAlias(TypePeer::THUMBNAIL, $thumbnail, $comparison);
|
|
}
|
|
|
|
/**
|
|
* Filter the query on the mimes column
|
|
*
|
|
* Example usage:
|
|
* <code>
|
|
* $query->filterByMimes('fooValue'); // WHERE mimes = 'fooValue'
|
|
* $query->filterByMimes('%fooValue%'); // WHERE mimes LIKE '%fooValue%'
|
|
* </code>
|
|
*
|
|
* @param string $mimes The value to use as filter.
|
|
* Accepts wildcards (* and % trigger a LIKE)
|
|
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function filterByMimes($mimes = null, $comparison = null)
|
|
{
|
|
if (null === $comparison) {
|
|
if (is_array($mimes)) {
|
|
$comparison = Criteria::IN;
|
|
} elseif (preg_match('/[\%\*]/', $mimes)) {
|
|
$mimes = str_replace('*', '%', $mimes);
|
|
$comparison = Criteria::LIKE;
|
|
}
|
|
}
|
|
|
|
return $this->addUsingAlias(TypePeer::MIMES, $mimes, $comparison);
|
|
}
|
|
|
|
/**
|
|
* Filter the query on the created_at column
|
|
*
|
|
* Example usage:
|
|
* <code>
|
|
* $query->filterByCreatedAt('2011-03-14'); // WHERE created_at = '2011-03-14'
|
|
* $query->filterByCreatedAt('now'); // WHERE created_at = '2011-03-14'
|
|
* $query->filterByCreatedAt(array('max' => 'yesterday')); // WHERE created_at > '2011-03-13'
|
|
* </code>
|
|
*
|
|
* @param mixed $createdAt The value to use as filter.
|
|
* Values can be integers (unix timestamps), DateTime objects, or strings.
|
|
* Empty strings are treated as NULL.
|
|
* Use scalar values for equality.
|
|
* Use array values for in_array() equivalent.
|
|
* Use associative array('min' => $minValue, 'max' => $maxValue) for intervals.
|
|
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function filterByCreatedAt($createdAt = null, $comparison = null)
|
|
{
|
|
if (is_array($createdAt)) {
|
|
$useMinMax = false;
|
|
if (isset($createdAt['min'])) {
|
|
$this->addUsingAlias(TypePeer::CREATED_AT, $createdAt['min'], Criteria::GREATER_EQUAL);
|
|
$useMinMax = true;
|
|
}
|
|
if (isset($createdAt['max'])) {
|
|
$this->addUsingAlias(TypePeer::CREATED_AT, $createdAt['max'], Criteria::LESS_EQUAL);
|
|
$useMinMax = true;
|
|
}
|
|
if ($useMinMax) {
|
|
return $this;
|
|
}
|
|
if (null === $comparison) {
|
|
$comparison = Criteria::IN;
|
|
}
|
|
}
|
|
|
|
return $this->addUsingAlias(TypePeer::CREATED_AT, $createdAt, $comparison);
|
|
}
|
|
|
|
/**
|
|
* Filter the query on the updated_at column
|
|
*
|
|
* Example usage:
|
|
* <code>
|
|
* $query->filterByUpdatedAt('2011-03-14'); // WHERE updated_at = '2011-03-14'
|
|
* $query->filterByUpdatedAt('now'); // WHERE updated_at = '2011-03-14'
|
|
* $query->filterByUpdatedAt(array('max' => 'yesterday')); // WHERE updated_at > '2011-03-13'
|
|
* </code>
|
|
*
|
|
* @param mixed $updatedAt The value to use as filter.
|
|
* Values can be integers (unix timestamps), DateTime objects, or strings.
|
|
* Empty strings are treated as NULL.
|
|
* Use scalar values for equality.
|
|
* Use array values for in_array() equivalent.
|
|
* Use associative array('min' => $minValue, 'max' => $maxValue) for intervals.
|
|
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function filterByUpdatedAt($updatedAt = null, $comparison = null)
|
|
{
|
|
if (is_array($updatedAt)) {
|
|
$useMinMax = false;
|
|
if (isset($updatedAt['min'])) {
|
|
$this->addUsingAlias(TypePeer::UPDATED_AT, $updatedAt['min'], Criteria::GREATER_EQUAL);
|
|
$useMinMax = true;
|
|
}
|
|
if (isset($updatedAt['max'])) {
|
|
$this->addUsingAlias(TypePeer::UPDATED_AT, $updatedAt['max'], Criteria::LESS_EQUAL);
|
|
$useMinMax = true;
|
|
}
|
|
if ($useMinMax) {
|
|
return $this;
|
|
}
|
|
if (null === $comparison) {
|
|
$comparison = Criteria::IN;
|
|
}
|
|
}
|
|
|
|
return $this->addUsingAlias(TypePeer::UPDATED_AT, $updatedAt, $comparison);
|
|
}
|
|
|
|
/**
|
|
* Filter the query on the sortable_rank column
|
|
*
|
|
* Example usage:
|
|
* <code>
|
|
* $query->filterBySortableRank(1234); // WHERE sortable_rank = 1234
|
|
* $query->filterBySortableRank(array(12, 34)); // WHERE sortable_rank IN (12, 34)
|
|
* $query->filterBySortableRank(array('min' => 12)); // WHERE sortable_rank >= 12
|
|
* $query->filterBySortableRank(array('max' => 12)); // WHERE sortable_rank <= 12
|
|
* </code>
|
|
*
|
|
* @param mixed $sortableRank The value to use as filter.
|
|
* Use scalar values for equality.
|
|
* Use array values for in_array() equivalent.
|
|
* Use associative array('min' => $minValue, 'max' => $maxValue) for intervals.
|
|
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function filterBySortableRank($sortableRank = null, $comparison = null)
|
|
{
|
|
if (is_array($sortableRank)) {
|
|
$useMinMax = false;
|
|
if (isset($sortableRank['min'])) {
|
|
$this->addUsingAlias(TypePeer::SORTABLE_RANK, $sortableRank['min'], Criteria::GREATER_EQUAL);
|
|
$useMinMax = true;
|
|
}
|
|
if (isset($sortableRank['max'])) {
|
|
$this->addUsingAlias(TypePeer::SORTABLE_RANK, $sortableRank['max'], Criteria::LESS_EQUAL);
|
|
$useMinMax = true;
|
|
}
|
|
if ($useMinMax) {
|
|
return $this;
|
|
}
|
|
if (null === $comparison) {
|
|
$comparison = Criteria::IN;
|
|
}
|
|
}
|
|
|
|
return $this->addUsingAlias(TypePeer::SORTABLE_RANK, $sortableRank, $comparison);
|
|
}
|
|
|
|
/**
|
|
* Filter the query on the slug column
|
|
*
|
|
* Example usage:
|
|
* <code>
|
|
* $query->filterBySlug('fooValue'); // WHERE slug = 'fooValue'
|
|
* $query->filterBySlug('%fooValue%'); // WHERE slug LIKE '%fooValue%'
|
|
* </code>
|
|
*
|
|
* @param string $slug The value to use as filter.
|
|
* Accepts wildcards (* and % trigger a LIKE)
|
|
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function filterBySlug($slug = null, $comparison = null)
|
|
{
|
|
if (null === $comparison) {
|
|
if (is_array($slug)) {
|
|
$comparison = Criteria::IN;
|
|
} elseif (preg_match('/[\%\*]/', $slug)) {
|
|
$slug = str_replace('*', '%', $slug);
|
|
$comparison = Criteria::LIKE;
|
|
}
|
|
}
|
|
|
|
return $this->addUsingAlias(TypePeer::SLUG, $slug, $comparison);
|
|
}
|
|
|
|
/**
|
|
* Filter the query by a related Media object
|
|
*
|
|
* @param Media|PropelObjectCollection $media the related object to use as filter
|
|
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
* @throws PropelException - if the provided filter is invalid.
|
|
*/
|
|
public function filterByMedia($media, $comparison = null)
|
|
{
|
|
if ($media instanceof Media) {
|
|
return $this
|
|
->addUsingAlias(TypePeer::ID, $media->getTypeId(), $comparison);
|
|
} elseif ($media instanceof PropelObjectCollection) {
|
|
return $this
|
|
->useMediaQuery()
|
|
->filterByPrimaryKeys($media->getPrimaryKeys())
|
|
->endUse();
|
|
} else {
|
|
throw new PropelException('filterByMedia() only accepts arguments of type Media or PropelCollection');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Adds a JOIN clause to the query using the Media relation
|
|
*
|
|
* @param string $relationAlias optional alias for the relation
|
|
* @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function joinMedia($relationAlias = null, $joinType = Criteria::LEFT_JOIN)
|
|
{
|
|
$tableMap = $this->getTableMap();
|
|
$relationMap = $tableMap->getRelation('Media');
|
|
|
|
// create a ModelJoin object for this join
|
|
$join = new ModelJoin();
|
|
$join->setJoinType($joinType);
|
|
$join->setRelationMap($relationMap, $this->useAliasInSQL ? $this->getModelAlias() : null, $relationAlias);
|
|
if ($previousJoin = $this->getPreviousJoin()) {
|
|
$join->setPreviousJoin($previousJoin);
|
|
}
|
|
|
|
// add the ModelJoin to the current object
|
|
if ($relationAlias) {
|
|
$this->addAlias($relationAlias, $relationMap->getRightTable()->getName());
|
|
$this->addJoinObject($join, $relationAlias);
|
|
} else {
|
|
$this->addJoinObject($join, 'Media');
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Use the Media relation Media object
|
|
*
|
|
* @see useQuery()
|
|
*
|
|
* @param string $relationAlias optional alias for the relation,
|
|
* to be used as main alias in the secondary query
|
|
* @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'
|
|
*
|
|
* @return \Trinity\Bundle\MediaBundle\Model\MediaQuery A secondary query class using the current class as primary query
|
|
*/
|
|
public function useMediaQuery($relationAlias = null, $joinType = Criteria::LEFT_JOIN)
|
|
{
|
|
return $this
|
|
->joinMedia($relationAlias, $joinType)
|
|
->useQuery($relationAlias ? $relationAlias : 'Media', '\Trinity\Bundle\MediaBundle\Model\MediaQuery');
|
|
}
|
|
|
|
/**
|
|
* Exclude object from result
|
|
*
|
|
* @param Type $type Object to remove from the list of results
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function prune($type = null)
|
|
{
|
|
if ($type) {
|
|
$this->addUsingAlias(TypePeer::ID, $type->getId(), Criteria::NOT_EQUAL);
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
// timestampable behavior
|
|
|
|
/**
|
|
* Filter by the latest updated
|
|
*
|
|
* @param int $nbDays Maximum age of the latest update in days
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function recentlyUpdated($nbDays = 7)
|
|
{
|
|
return $this->addUsingAlias(TypePeer::UPDATED_AT, time() - $nbDays * 24 * 60 * 60, Criteria::GREATER_EQUAL);
|
|
}
|
|
|
|
/**
|
|
* Order by update date desc
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function lastUpdatedFirst()
|
|
{
|
|
return $this->addDescendingOrderByColumn(TypePeer::UPDATED_AT);
|
|
}
|
|
|
|
/**
|
|
* Order by update date asc
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function firstUpdatedFirst()
|
|
{
|
|
return $this->addAscendingOrderByColumn(TypePeer::UPDATED_AT);
|
|
}
|
|
|
|
/**
|
|
* Filter by the latest created
|
|
*
|
|
* @param int $nbDays Maximum age of in days
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function recentlyCreated($nbDays = 7)
|
|
{
|
|
return $this->addUsingAlias(TypePeer::CREATED_AT, time() - $nbDays * 24 * 60 * 60, Criteria::GREATER_EQUAL);
|
|
}
|
|
|
|
/**
|
|
* Order by create date desc
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function lastCreatedFirst()
|
|
{
|
|
return $this->addDescendingOrderByColumn(TypePeer::CREATED_AT);
|
|
}
|
|
|
|
/**
|
|
* Order by create date asc
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function firstCreatedFirst()
|
|
{
|
|
return $this->addAscendingOrderByColumn(TypePeer::CREATED_AT);
|
|
}
|
|
// sortable behavior
|
|
|
|
/**
|
|
* Filter the query based on a rank in the list
|
|
*
|
|
* @param integer $rank rank
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function filterByRank($rank)
|
|
{
|
|
return $this
|
|
->addUsingAlias(TypePeer::RANK_COL, $rank, Criteria::EQUAL);
|
|
}
|
|
|
|
/**
|
|
* Order the query based on the rank in the list.
|
|
* Using the default $order, returns the item with the lowest rank first
|
|
*
|
|
* @param string $order either Criteria::ASC (default) or Criteria::DESC
|
|
*
|
|
* @return TypeQuery The current query, for fluid interface
|
|
*/
|
|
public function orderByRank($order = Criteria::ASC)
|
|
{
|
|
$order = strtoupper($order);
|
|
switch ($order) {
|
|
case Criteria::ASC:
|
|
return $this->addAscendingOrderByColumn($this->getAliasedColName(TypePeer::RANK_COL));
|
|
break;
|
|
case Criteria::DESC:
|
|
return $this->addDescendingOrderByColumn($this->getAliasedColName(TypePeer::RANK_COL));
|
|
break;
|
|
default:
|
|
throw new PropelException('TypeQuery::orderBy() only accepts "asc" or "desc" as argument');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get an item from the list based on its rank
|
|
*
|
|
* @param integer $rank rank
|
|
* @param PropelPDO $con optional connection
|
|
*
|
|
* @return Type
|
|
*/
|
|
public function findOneByRank($rank, PropelPDO $con = null)
|
|
{
|
|
return $this
|
|
->filterByRank($rank)
|
|
->findOne($con);
|
|
}
|
|
|
|
/**
|
|
* Returns the list of objects
|
|
*
|
|
* @param PropelPDO $con Connection to use.
|
|
*
|
|
* @return mixed the list of results, formatted by the current formatter
|
|
*/
|
|
public function findList($con = null)
|
|
{
|
|
return $this
|
|
->orderByRank()
|
|
->find($con);
|
|
}
|
|
|
|
/**
|
|
* Get the highest rank
|
|
*
|
|
* @param PropelPDO optional connection
|
|
*
|
|
* @return integer highest position
|
|
*/
|
|
public function getMaxRank(PropelPDO $con = null)
|
|
{
|
|
if ($con === null) {
|
|
$con = Propel::getConnection(TypePeer::DATABASE_NAME);
|
|
}
|
|
// shift the objects with a position lower than the one of object
|
|
$this->addSelectColumn('MAX(' . TypePeer::RANK_COL . ')');
|
|
$stmt = $this->doSelect($con);
|
|
|
|
return $stmt->fetchColumn();
|
|
}
|
|
|
|
/**
|
|
* Reorder a set of sortable objects based on a list of id/position
|
|
* Beware that there is no check made on the positions passed
|
|
* So incoherent positions will result in an incoherent list
|
|
*
|
|
* @param array $order id => rank pairs
|
|
* @param PropelPDO $con optional connection
|
|
*
|
|
* @return boolean true if the reordering took place, false if a database problem prevented it
|
|
*/
|
|
public function reorder(array $order, PropelPDO $con = null)
|
|
{
|
|
if ($con === null) {
|
|
$con = Propel::getConnection(TypePeer::DATABASE_NAME);
|
|
}
|
|
|
|
$con->beginTransaction();
|
|
try {
|
|
$ids = array_keys($order);
|
|
$objects = $this->findPks($ids, $con);
|
|
foreach ($objects as $object) {
|
|
$pk = $object->getPrimaryKey();
|
|
if ($object->getSortableRank() != $order[$pk]) {
|
|
$object->setSortableRank($order[$pk]);
|
|
$object->save($con);
|
|
}
|
|
}
|
|
$con->commit();
|
|
|
|
return true;
|
|
} catch (PropelException $e) {
|
|
$con->rollback();
|
|
throw $e;
|
|
}
|
|
}
|
|
|
|
// sluggable behavior
|
|
|
|
/**
|
|
* Find one object based on its slug
|
|
*
|
|
* @param string $slug The value to use as filter.
|
|
* @param PropelPDO $con The optional connection object
|
|
*
|
|
* @return Type the result, formatted by the current formatter
|
|
*/
|
|
public function findOneBySlug($slug, $con = null)
|
|
{
|
|
return $this->filterBySlug($slug)->findOne($con);
|
|
}
|
|
|
|
}
|