我对Typo3和Extbase很新,所以我现在真的很丢失......我们有这样的类别树:
+ root
++ chairs
++ wooden chairs
+ plastic chairs (2)
+ generic chairs (0)
+ broken chairs
++ slightly broken chairs (3)
+ heavily broken chairs (1)
+ chairs that kill (10)
我们有一个数据集(自定义扩展和数据库表等),每个记录都可以分配到一个类别,什么是typo3的内置功能。我们还有一个Repository类,它实现了findByCategory()
方法。
我们希望列出自定义表中的所有记录,这些记录是给定类别的成员。因此,在上述示例的情况下,findByCategory('broken chairs')
应该产生14个项目findByCategory('chairs')
16。
我们可以使用任何助手/实用程序类来获取给定父类别中的所有类别吗?
答案 0 :(得分:0)
我认为你必须扩展CategoryRepository并实现自己的方法。该方法可能如下所示:
/**
* Finds categories based on their parents, possibly taking categories2skip into account
*
* @param integer $parent
* @param array $categories2skip
*
* @return object
*/
public function findByParent($parent, $categories2skip = array()) {
$query = $this->createQuery();
$constraints = array();
$constraints[] = $query->equals('parent', $parent);
if (count($categories2skip) > 0) {
$constraints[] = $query->logicalNot($query->in('uid', $categories2skip));
}
$query->matching(
$query->logicalAnd($constraints)
);
$result = $query->execute();
return $result;
}