Pimcore:列出具有与提供的年份和月份匹配的 DateTime 对象的对象

Pimcore: List objects with DateTime object matching a provided year and month

我的机构正在为 Pimcore 上的博客部署构建过滤控件,我们正在尝试按给定的 YYYY-MM 组合过滤帖子。我们对作者对象和主题对象进行过滤。

这是我们控制器中应用过滤器和返回帖子的代码块...

// Pagination page...
$page = (int)$this->getParam("page") < 1 ? 1 : (int)$this->getParam("page");

// Results per page...
$rpp = (int)$this->document->getProperty( 'resultsPerPage' ) < 1 ? 1 : (int)$this->document->getProperty( 'resultsPerPage' );

// Return list of posts...
$list = new Object\BlogArticle\Listing();

// Apply author filter...
if( $this->getParam( 'filter-by' ) == 'author' ) {
    $list->setCondition( 'author LIKE ?', "%,".(int)$this->getParam( 'author' ).",%" );
}

// Apply category filter...
if( $this->getParam( 'filter-by' ) == 'category' ) {
    $list->setCondition( 'categories LIKE ?', "%,".(int)$this->getParam( 'category' ).",%" );
}

// This isn't working!
if( $this->getParam( 'filter-by' ) == 'archive' ) {
    $list->setCondition( "DATE_FORMAT(FROM_UNIXTIME(date), '%Y-%m') = ".$list->quote( $this->getParam( 'archive' ) ) );
}

// Order by date...
$list->setOrderKey( "date" );
$list->setOrder( $this->document->getProperty( 'resultsSort' ) == 'asc' ? 'asc' : 'desc' );

// Apply pagination values...
$list->setLimit( $rpp );
$list->setOffset( ( $page - 1 ) * $rpp );

// Do it!
$this->view->blog = $list->getObjects();

$this->getParam( 'archive' ) 等同于 2016-06。 Zend DateTime 对象绑定到 date 列。

我查看了 Pimcore 文档,但找不到有关如何查询对象的 DateTime 字段的任何信息。

您的方法似乎完全有效并且应该有效。日期函数名称中只有一个错误。它应该是 FROM_UNIXTIME 而不是 FROMUNIXTIME.