使用extbase查询时,是否可以按链接模型中的字段对结果进行排序?

时间:2013-08-01 11:44:43

标签: typo3 extbase

我正在查询Model *,它有一个引用另一个Model的字段。是否可以使用链接模型中的字段对结果进行排序?

例如:

Car包含一个引用其OWner的字段。我想显示所有按其所有者排序的汽车。

(我不想使用statement()方法,因为在这种情况下我必须自己编写整个查询)

(*)使用http://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_persistence_1_1_generic_1_1_query.html

3 个答案:

答案 0 :(得分:3)

是的,有可能(暂时不关心$constraint):

$query->matching($constraint)->setOrderings(
    array('owner.sorting' => Tx_Extbase_Persistence_QueryInterface::ORDER_ASCENDING)
)->execute();

假设您Car模型中的字段名为owner,并且您希望按sorting模型/表的Owner字段进行排序。

答案 1 :(得分:1)

使用6.2时

- > setOrderings(Array('model.yourfield'=> \ TYPO3 \ CMS \ Extbase \ Persistence \ QueryInterface :: ORDER_ASCENDING))

答案 2 :(得分:0)

@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();