eZ\Publish\Core\Persistence\Legacy\Content\Gateway\DoctrineDatabase\QueryBuilder::createFindQuery PHP Méthode

createFindQuery() public méthode

Creates a select query with all necessary joins to fetch a complete content object. Does not apply any WHERE conditions unless translations are provided, and does not contain name data as it will lead to very large result set {@see \createNamesQuery}.
public createFindQuery ( array $translations = null ) : eZ\Publish\Core\Persistence\Database\SelectQuery
$translations array
Résultat eZ\Publish\Core\Persistence\Database\SelectQuery
    public function createFindQuery(array $translations = null)
    {
        /** @var $query \eZ\Publish\Core\Persistence\Database\SelectQuery */
        $query = $this->dbHandler->createSelectQuery();
        $query->select($this->dbHandler->aliasedColumn($query, 'id', 'ezcontentobject'), $this->dbHandler->aliasedColumn($query, 'contentclass_id', 'ezcontentobject'), $this->dbHandler->aliasedColumn($query, 'section_id', 'ezcontentobject'), $this->dbHandler->aliasedColumn($query, 'owner_id', 'ezcontentobject'), $this->dbHandler->aliasedColumn($query, 'remote_id', 'ezcontentobject'), $this->dbHandler->aliasedColumn($query, 'current_version', 'ezcontentobject'), $this->dbHandler->aliasedColumn($query, 'initial_language_id', 'ezcontentobject'), $this->dbHandler->aliasedColumn($query, 'modified', 'ezcontentobject'), $this->dbHandler->aliasedColumn($query, 'published', 'ezcontentobject'), $this->dbHandler->aliasedColumn($query, 'status', 'ezcontentobject'), $this->dbHandler->aliasedColumn($query, 'name', 'ezcontentobject'), $this->dbHandler->aliasedColumn($query, 'language_mask', 'ezcontentobject'), $this->dbHandler->aliasedColumn($query, 'id', 'ezcontentobject_version'), $this->dbHandler->aliasedColumn($query, 'version', 'ezcontentobject_version'), $this->dbHandler->aliasedColumn($query, 'modified', 'ezcontentobject_version'), $this->dbHandler->aliasedColumn($query, 'creator_id', 'ezcontentobject_version'), $this->dbHandler->aliasedColumn($query, 'created', 'ezcontentobject_version'), $this->dbHandler->aliasedColumn($query, 'status', 'ezcontentobject_version'), $this->dbHandler->aliasedColumn($query, 'contentobject_id', 'ezcontentobject_version'), $this->dbHandler->aliasedColumn($query, 'language_mask', 'ezcontentobject_version'), $this->dbHandler->aliasedColumn($query, 'initial_language_id', 'ezcontentobject_version'), $this->dbHandler->aliasedColumn($query, 'id', 'ezcontentobject_attribute'), $this->dbHandler->aliasedColumn($query, 'contentclassattribute_id', 'ezcontentobject_attribute'), $this->dbHandler->aliasedColumn($query, 'data_type_string', 'ezcontentobject_attribute'), $this->dbHandler->aliasedColumn($query, 'language_code', 'ezcontentobject_attribute'), $this->dbHandler->aliasedColumn($query, 'language_id', 'ezcontentobject_attribute'), $this->dbHandler->aliasedColumn($query, 'version', 'ezcontentobject_attribute'), $this->dbHandler->aliasedColumn($query, 'data_float', 'ezcontentobject_attribute'), $this->dbHandler->aliasedColumn($query, 'data_int', 'ezcontentobject_attribute'), $this->dbHandler->aliasedColumn($query, 'data_text', 'ezcontentobject_attribute'), $this->dbHandler->aliasedColumn($query, 'sort_key_int', 'ezcontentobject_attribute'), $this->dbHandler->aliasedColumn($query, 'sort_key_string', 'ezcontentobject_attribute'), $this->dbHandler->aliasedColumn($query, 'main_node_id', 'ezcontentobject_tree'))->from($this->dbHandler->quoteTable('ezcontentobject'))->innerJoin($this->dbHandler->quoteTable('ezcontentobject_version'), $query->expr->eq($this->dbHandler->quoteColumn('contentobject_id', 'ezcontentobject_version'), $this->dbHandler->quoteColumn('id', 'ezcontentobject')))->innerJoin($this->dbHandler->quoteTable('ezcontentobject_attribute'), $query->expr->lAnd($query->expr->eq($this->dbHandler->quoteColumn('contentobject_id', 'ezcontentobject_attribute'), $this->dbHandler->quoteColumn('contentobject_id', 'ezcontentobject_version')), $query->expr->eq($this->dbHandler->quoteColumn('version', 'ezcontentobject_attribute'), $this->dbHandler->quoteColumn('version', 'ezcontentobject_version'))))->leftJoin($this->dbHandler->quoteTable('ezcontentobject_tree'), $query->expr->lAnd($query->expr->eq($this->dbHandler->quoteColumn('contentobject_id', 'ezcontentobject_tree'), $this->dbHandler->quoteColumn('id', 'ezcontentobject')), $query->expr->eq($this->dbHandler->quoteColumn('main_node_id', 'ezcontentobject_tree'), $this->dbHandler->quoteColumn('node_id', 'ezcontentobject_tree'))));
        if (!empty($translations)) {
            $query->where($query->expr->in($this->dbHandler->quoteColumn('language_code', 'ezcontentobject_attribute'), $translations));
        }
        return $query;
    }

Usage Example

 /**
  * Loads data for the latest published version of the content identified by
  * $contentId
  *
  * @param mixed $contentId
  *
  * @return array
  */
 public function loadLatestPublishedData($contentId)
 {
     $query = $this->queryBuilder->createFindQuery();
     $query->where($query->expr->lAnd($query->expr->eq($this->dbHandler->quoteColumn('id', 'ezcontentobject'), $query->bindValue($contentId, null, \PDO::PARAM_INT)), $query->expr->eq($this->dbHandler->quoteColumn('version', 'ezcontentobject_version'), $this->dbHandler->quoteColumn('current_version', 'ezcontentobject'))));
     $statement = $query->prepare();
     $statement->execute();
     return $statement->fetchAll(\PDO::FETCH_ASSOC);
 }
All Usage Examples Of eZ\Publish\Core\Persistence\Legacy\Content\Gateway\DoctrineDatabase\QueryBuilder::createFindQuery