使用流体调试数组时,我看到一个嵌套数组:
building
[+]floor
[+]room
单击+时,子阵列按UID排序,而不是按"排序"正如我在我的存储库中指定的那样。
protected $defaultOrderings = array(
'sorting' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING
);
我可以以某种方式访问排序值吗? 或者我可以以某种方式强制TYPO3在排序后对其自己的数组进行排序吗?
答案 0 :(得分:0)
不应手动设置排序字段。
如果您想对条目进行排序,请使用DataHandler,例如Typo3 Backend。
这是一个解决方案: TYPO3 CommandController: How to set table field "sorting" of Extbase Object?
答案 1 :(得分:0)
通过“点击+”,您的意思是子对象没有按照您在TCA中指定的方式进行排序?
子对象上的排序丢失,因为默认情况下Extbases PersistenceRepository仅按对象本身中指定的顺序排序。但这没什么大不了的,您只需要通过subproperty指定订单,使用defaultOrderings属性或构建查询时:
class FloorRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
// Order by BE sorting
protected $defaultOrderings = array(
'sorting' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING
'room.sorting' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING
);
...
}
这应该为您提供楼层的房间,按照楼层的分类排序,并在每个楼层,按排序分类的房间。
答案 2 :(得分:-1)
您可以通过在模型中将其定义为整数并创建相关的getter(如果需要,可以设置setter)来访问sort属性
受保护的$ sorting