TYPO3 Extbase模型n:1双向



我有以下模型:

 FilePackage
      - ID
      - Name
 FileGroup
      - ID
      - Name
      - filePackage              
 File
      - ID 
      - Path   
      - fileGroup

如果我想获得一个组的所有文件,我目前做一些查询,如。

$groups = $this->fileGroupRepository->findByPackage($package);
foreach($groups as $group){
     $files = $this->fileRepository->findByFilegroup($group);
     foreach($files as $file){
         // Handle it...
     }
}

可以直接访问吗?就像$groups = $this->fileGroupRepository->findByPackage($package);Foreach ($groups as $group){组-> getfile ();}

无需查询之前的所有内容并直接在模板中使用

根据TCA中的配置,Extbase应该负责获取所有相关对象。

例如:

Filegroup

'files' => array(
    'label' => 'LLL:EXT:foo_myext/Resources/Private/Language/locallang_db.xml:tx_foomyext_domain_model_filegroup.files',
    'l10n_mode' => 'exclude',
    'config' => array(
        'type' => 'group',
        'internal_type' => 'db',
        'allowed' => 'tx_foomyext_domain_model_file',
        'foreign_table' => 'tx_foomyext_domain_model_file',
        'MM' => 'tx_foomyext_filegoup_file_mm',
        'maxitems'      => 10,
        'minitems'      => 0,
        'size'      => 10,
    ),
),
文件

'filegroups' => array(
    'exclude' => 0,
    'label' => 'LLL:EXT:tw_foomyext/Resources/Private/Language/locallang_db.xml:tx_foomyext_domain_model_file.filegroups',
    'config'  => array(
        'type' => 'select',
        'foreign_table' => 'tx_foomyext_domain_model_filegroup',
        'foreign_table_where' => 'ORDER BY tx_foomyext_domain_model_filegroup.id',
        'MM' => 'tx_foomyext_filegroup_file_mm',
        'MM_opposite_field' => 'files',
        'size' => 5,
        'minitems' => 0,
        'maxitems' => 10,
    )
),

在你的模型中,这些属性应该被表示为ObjectStorage。

如果您选择一个文件组,Extbase将自动为您获取所有相关文件,您将有权访问它们。

相关内容

  • 没有找到相关文章

最新更新