我正在查询一个 Model*,它有一个引用另一个 Model 的字段。是否可以使用链接模型中的字段对结果进行排序?
例如:
Car 包含一个引用其 OWner 的字段。我想显示按所有者分类的所有汽车。
(我不想使用 statement() 方法,因为在这种情况下我必须自己编写整个查询)
我正在查询一个 Model*,它有一个引用另一个 Model 的字段。是否可以使用链接模型中的字段对结果进行排序?
例如:
Car 包含一个引用其 OWner 的字段。我想显示按所有者分类的所有汽车。
(我不想使用 statement() 方法,因为在这种情况下我必须自己编写整个查询)
是的,有可能(暂时不关心$constraint
):
$query->matching($constraint)->setOrderings(
array('owner.sorting' => Tx_Extbase_Persistence_QueryInterface::ORDER_ASCENDING)
)->execute();
假设您Car
模型中的字段已命名owner
,并且您希望按模型/表的sorting
字段进行排序。Owner
使用 6.2 时
->setOrderings(Array('model.yourfield' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING))
@Michael 和 @rob-ot 是对的。有一个陷阱让我花了好几个小时,我想在这里提一下:
如果相关表中的排序字段包含下划线,则必须将其名称提供给 lowerCamelCase 中的 setSortOrderings:
// with database column name my_car_sorting you must define:
$query->matching($constraint)->setOrderings(
array('owner.myCarSorting' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING)
)->execute();