非常に大きな extbase 拡張機能を作成していて、いくつかの複雑なフィルター関数を処理する必要があります。純粋な sql のワンライナーになりますが、さまざまな理由で Extbase ORM を使用する必要があります。
演劇の上演についてです。すべてのプレイには複数のパフォーマンスがあり、プレイは集計ルートです。
特定の時間範囲内でパフォーマンスを見つける必要がありますが、それは簡単なことではありません。ただし、カテゴリは親 (プレイ) の子です。プレイの参照をパフォーマンスではなく、プレイで保存します (これは、TCA を選択タイプとして構成する必要があるためです)。
結果を paginator ウィジェットに転送する必要がありますが、これには QueryResultInterface のインスタンスが必要です。再生を集計ルートとして使用し、そこからパフォーマンスを抽出すると、ObjectStorage が返され、ウィジェットが壊れます。
親カテゴリの子が一致する場合、出力を制限することは何とか可能ですか?それとも私は正しいと思いますか?合理的な可能性はありませんか?
public function findByTimeRangeInBeginTimeAndAttendCategoryAndStartOfBooking(Datetime $startRange, Datetime $endRange, $category = 'undefined') {
$query = $this->createQuery();
$constraints = array();
$constraints[] = $query->greaterThanOrEqual('timebegin', $startRange->getTimestamp());
$constraints[] = $query->lessThanOrEqual('timebegin', $endRange->getTimestamp());
if($category !== 'undefined') {
$constraints[] = $query->equals('play.category.name', $category);
}
$query->matching (
$query->logicalAnd($constraints)
);
$query->setOrderings (
Array('timebegin' => Tx_Extbase_Persistence_Query::ORDER_ASCENDING)
);
return $query->execute();
}