我有一个Extbase模型文章和一个1:n关系产品。在条款TCA中,我配置了一个内联字段。我想在我的文章模板中显示所有相关产品。这些由uid整理。我如何才能将子对象的排序更改为字段排序,以便能够对其进行手动排序。(以后端形式可以进行排序,仅显示通过字段排序进行的排序是不可能的)
谢谢,卢卡斯
在对象存储中对子元素进行排序的最简单方法是操纵TCA。
例:
$TCA['tx_myext_domain_model_ordering'] = array(
...
'columns' => array(
'services' => array(
'exclude' => 0,
'label' => 'LLL:EXT:myext/Resources/Private/Language/locallang_db.xml:tx_myext_domain_model_ordering.services',
'config' => array(
'type' => 'inline',
'foreign_table' => 'tx_myext_domain_model_service',
'foreign_field' => 'ordering',
'foreign_sortby' => 'sorting',
'maxitems' => 9999,
'appearance' => array(
'collapseAll' => 0,
'levelLinksPosition' => 'top',
'showSynchronizationLink' => 1,
'showPossibleLocalizationRecords' => 1,
'showAllLocalizationLink' => 1
),
),
),
),
...
);
Run Code Online (Sandbox Code Playgroud)
使用“ foreign_sortby” =>“ sorting”字段,您可以轻松地说出应在哪个字段上订购孩子。
这是我在存储库类中执行此操作的方法:
class ItemRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
/**
* http://www.typo3.net/forum/thematik/zeige/thema/114160/?show=1
* Returns items of this repository, sorted by sorting
*
* @return array An array of objects, empty if no objects found
* @api
*/
public function findAll() {
$orderings = array(
'sorting' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING
);
$query = $this->createQuery();
$query->setOrderings($orderings);
$query->getQuerySettings()->setRespectSysLanguage(FALSE);
$query->getQuerySettings()->setSysLanguageUid(0);
$result = $query->execute();
return $result;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6589 次 |
| 最近记录: |