0
代理店はPimcoreのブログ展開用のフィルタリングコントロールを構築しており、特定のYYYY-MMの組み合わせで投稿をフィルタリングしようとしています。著者オブジェクトとサブジェクトオブジェクトのフィルタリングがあります。ここでPimcore:指定された年と月に一致するDateTimeオブジェクトを持つオブジェクトを一覧表示する
は$this->getParam('archive')
が2016-06
の線に沿って何かに等しい
// 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();
...フィルタと戻ってポストを適用し、当社のコントローラ内のコードブロックです。 Zend DateTimeオブジェクトはdate
列にバインドされています。
私はPimcoreのドキュメントを調べましたが、オブジェクトのDateTimeフィールドのクエリ方法については何も見つかりませんでした。
ああ、はい。私がその変更を行った今、機能しているようです。しかし、結果をページングし続けると、最終的にそのYYYY-MMコンボに属さない結果が得られます。これらの不一致の結果を厳密に比較して整理する方法はありますか? – RedYetiCo
他のページもfilter-byパラメータを取得していることを確認してください。 –
ああ、そうでした。私たちは、追加の投稿に対して遅延読み込みメソッドを実行していましたが、パラメータが渡されていませんでした。ありがとうもう一度イゴール! – RedYetiCo